3

我在 C++ 中使用库 gtkmm。这是我定义“打开”的代码部分:

Gtk::ImageMenuItem *menuOpen = Gtk::manage(new Gtk::ImageMenuItem(Gtk::Stock::OPEN));
menuFile->append(*menuOpen);

如果我无法单击它,我希望“打开”显示为灰色,但我不知道允许这样做的方法。有什么建议么?

谢谢您的帮助。

4

1 回答 1

2

在 gtkmm 3 中,两者Gtk::ImageMenuItem都已Gtk::Stock被弃用,因此最好不要使用它们。仅Gtk::MenuItem与设置为 的文本一起使用"_Open"

gtkmm 中的所有小部件都派生自Gtk::Widget. 使用的方法是Gtk::Widget::set_sensitive(bool)

要使您的菜单变灰或不敏感,请使用:

menuOpen->set_sensitive(false);

要重新启用菜单项:

menuOpen->set_sensitive();

如果您想知道它是否变灰,请使用:

bool am_i_sensitive = menuOpen->get_sensitive();
于 2017-01-09T08:13:47.793 回答