2009-11-10 22 views
8

Devre dışı bırakma/devre dışı bırakma GTK + altındaki bazı menü öğelerini devre dışı/etkisiz hale getirmeye çalışıyorum. C altında GTK + Glade içinde Menü oluşturduk ve bazı harici olaylarda bazı menü seçeneklerini devre dışı bırakmam gerekiyor.Bazı GtkMenu Öğeleri

Bunu nasıl yapabilirim?

cevap

10

Menü öğesi widget'ını devre dışı bırakmak veya etkinleştirmek için gtk_widget_set_sensitive(menuitem, true/false)'u kullanabilirsiniz.

Alternatif olarak, menüyü oluşturmak için GtkUiManager ve GtkAction'ı kullandıysanız, bunun yerine gtk_action_set_sensitive() kullanın.

+0

Bir soru daha .. alabilirim nasıl seçildiği hangi menü öğesi olduğunu bilmek ... ben Glade'de menü oluşturduk ... ben bazı Constant kimlik veya Numaralandırma Constant ilişkilendirebilirsiniz her menü öğesine ... geri dönerken, Constant'a bağlı olarak işlevselliği ikiye bölebilirim. – User7723337

+0

Her bir öğenin "etkinleştirme" sinyali için farklı bir geri arama ekleyebilir veya tüm öğeleri tek bir geri aramaya bağlayabilir ve hangi öğenin seçildiğini görmek için ilk bağımsız değişkeni kontrol edebilirsiniz. Ayrıntılar için bkz. Http://library.gnome.org/devel/gtk/unstable/GtkMenuItem.html#GtkMenuItem-activate. –

1

kullanma:

gtk_widget_set_sensitive (menuitem,FALSE); // to gray-out 
gtk_widget_set_sensitive (menuitem,TRUE); //to enable 
İlgili konular