如何使无法单击的gtkmm菜单项变灰

时间:2017-01-06 18:46:41

标签: c++ gtkmm gtkmm3

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

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

如果我不能点击它,我希望“打开”变灰,但我不知道允许这样做的方法。有什么建议吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在gtkmm 3中,Gtk::ImageMenuItemGtk::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();