Đặt bất kỳ gtk.Widget nào bên trong gtk.Mothy hoạt động, phần nào, bằng cách đặt gtk.MothyItem trống vào trước. Nó dường như không đáng tin cậy - nhưng về cơ bản nó hoạt động. Với một appindicator.Theicator, nó không hoạt động. Các mục chỉ để trống. Ngay cả khi bạn đặt con [Border_size] thành 32 chẳng hạn.
Tiện ích duy nhất hoạt động là gtk.Label (cộng với MenuItem, ImageMothyItem, v.v.).
Bây giờ Menu Me đã có gtk.Entry trong đó, vì vậy chắc chắn phải có thể làm điều này đúng cách. Tôi phải làm nó như thế nào?
Dưới đây là một số mã ví dụ để giải thích những gì tôi đang nói về:
self.item = gtk.MenuItem()
self.item.add(gtk.Label("hello world!"))
self.menu.append(self.item)
Đoạn mã trên hoạt động, tuy nhiên điều này không:
self.item = gtk.MenuItem()
self.item.add(gtk.Entry())
self.menu.append(self.item)
Trong đó self.menu là một appindicator.Theicator, nếu đó là một gtk.Mothy, thì Entry ít nhất sẽ được hiển thị.
Đây là một số mã làm việc:
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()