Menempatkan gtk. Letakkan di dalam gtk.Menu berfungsi, agaknya, dengan meletakkan gtk.MenuItem kosong terlebih dahulu. Tampaknya tidak dapat diandalkan - tetapi pada dasarnya berfungsi. Dengan appindicator.Indicator, itu tidak berfungsi. Entri tetap kosong. Bahkan jika Anda mengatur anak [border_size] ke 32, misalnya.
Satu-satunya widget yang berfungsi adalah gtk.Label (plus MenuItem, ImageMenuItem dan sebagainya tentu saja).
Sekarang Menu Me punya gtk. Masukkan di dalamnya, jadi pasti harus melakukan ini dengan benar. Bagaimana saya melakukannya?
Berikut beberapa contoh kode untuk menjelaskan tentang apa yang saya maksud:
self.item = gtk.MenuItem()
self.item.add(gtk.Label("hello world!"))
self.menu.append(self.item)
Kode di atas berfungsi, namun ini tidak:
self.item = gtk.MenuItem()
self.item.add(gtk.Entry())
self.menu.append(self.item)
Di mana self.menu adalah appindicator.Indicator, jika itu adalah gtk.Menu, Entri akan setidaknya ditampilkan.
Ini beberapa kode yang berfungsi:
import gtk
import appindicator
class AppIndicator (object):
def __init__(self):
self.ind = appindicator.Indicator("hello world client",
"distributor-logo", appindicator.CATEGORY_APPLICATION_STATUS)
self.ind.set_status (appindicator.STATUS_ACTIVE)
self.menu = gtk.Menu()
item = gtk.MenuItem()
item.add(gtk.Label("hello world"))
# item.add(gtk.Entry())
self.menu.append(item)
self.menu.show_all()
self.ind.set_menu(self.menu)
indicator = AppIndicator()
gtk.main()