วาง gtk ใด ๆ เข้าไปใน gtk.Menu แล้วทำงานโดยใส่ gtk.MenuItem ที่ว่างไว้ก่อน ดูเหมือนจะไม่น่าเชื่อถือ - แต่ใช้งานได้จริง ด้วย appindicator ตัวบ่งชี้มันไม่ทำงาน รายการเพิ่งจะว่างเปล่า แม้ว่าคุณจะตั้งค่าเด็ก [border_size] เป็น 32
วิดเจ็ตเดียวที่ใช้งานได้คือ gtk.Label (รวมถึง MenuItem, ImageMenuItem และอื่น ๆ )
ตอนนี้เมนูของฉันได้รับ gtk ลองใหม่ดังนั้นมันจะต้องเป็นไปได้ที่จะทำอย่างถูกต้อง ฉันต้องทำอย่างไร?
นี่คือตัวอย่างโค้ดที่จะอธิบายสิ่งที่ฉันกำลังทำ:
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 เป็นตัวบ่งชี้ตัวบ่งชี้ถ้าเป็น 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()