0

私はPythonでGTK 3.4をプログラミングしています(GObjectイントロスペクションを使用)。bc1 をクリックしても問題なく動作するのに、cb2 関数で作成されたメニューが表示されない、または時々点滅して消える理由がわかりません。

プログラムは、ユーザーがボタンをクリックする前に、メニューに配置するすべての項目を認識しているわけではありません。何か案は?

#!/usr/bin/python

from gi.repository import Gtk

def create_menu():
    m = Gtk.Menu()
    item = Gtk.MenuItem(u"piano")
    m.append(item)
    m.show_all()
    return m

menu1 = create_menu()

def cb1(widget):
    menu1.popup(None, None, None, None, 0, 0)
    return True

def cb2(widget):
    menu2 = create_menu()
    menu2.popup(None, None, None, None, 0, 0)
    return True

w = Gtk.Window()
grid = Gtk.Grid()
w.add(grid)

b1 = Gtk.Button("cb1")
grid.add(b1)
b1.connect('clicked', cb1)

b2 = Gtk.Button("cb2")
grid.add(b2)
b2.connect('clicked', cb2)

w.connect('destroy', Gtk.main_quit)
w.show_all()
Gtk.main()
4

1 に答える 1