किसी भी gtk.Widget को एक gtk.Menu के अंदर रखना, कुछ हद तक, पहले एक खाली gtk.MenuItem लगाकर काम करता है। यह विश्वसनीय नहीं लगता - लेकिन यह मूल रूप से काम करता है। एक appindicator.Indicator के साथ, यह काम नहीं करता है। प्रवेश सिर्फ खाली रहता है। उदाहरण के लिए, भले ही आप बच्चे को [बॉर्डर_साइज़] 32 पर सेट करें।
केवल विजेट जो काम करता है वह एक gtk.Label (प्लस MenuItem, ImageMenuItem और इसी तरह) है।
अब मुझे मेनू में एक gtk.Entry मिला है, इसलिए यह निश्चित रूप से यह उचित रूप से करना संभव है। मैं यह कैसे करुं?
यहाँ कुछ उदाहरण कोड के बारे में बताया जा रहा है कि मैं किस बारे में हूँ:
self.item = gtk.MenuItem()
self.item.add(gtk.Label("hello world!"))
self.menu.append(self.item)
उपरोक्त कोड काम करता है, लेकिन यह नहीं है:
self.item = gtk.MenuItem()
self.item.add(gtk.Entry())
self.menu.append(self.item)
जहाँ self.menu एक appindicator.Indicator है, अगर यह एक gtk.Menu होता, तो एंट्री कम से कम प्रदर्शित होती।
यहाँ कुछ काम कोड है:
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()