我正在使用 Gtk-Python 开发一个小型应用程序,其中我有大约 10 到 20 个按钮,当单击其中任何一个时,我希望将按钮的值附加到我已经完成的文本框中
button1.connect("clicked",button_function)
button2.connect("clicked",button_function)
...
对于所有功能。这是唯一的方法吗?或者有什么优雅的方法吗?并且按钮的值由
button1._value=#something
...
谁能帮我?
这样,将按钮对象放在一个列表中,这样调用它,
for button in buttonslist:
button.connect("clicked",button_function)
import sys,os
import pygtk, gtk, gobject
class GTK_Main:
def __init__(self):
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.set_title("Test")
window.set_default_size(500, 400)
window.connect("destroy", gtk.main_quit, "WM destroy")
hbox_eq = gtk.HBox()
buttonlist = []
for i in [1,2,3,4,5,6,7,8,9]:
b = gtk.Button( str(i) )
b.set_name("YOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO!")
buttonlist.append(b)
hbox_eq.pack_start(b, True, True, 0)
for button in buttonlist:
print button
#print button.get_label()
#print button.get_name()
window.add(hbox_eq)
window.show_all()
def exit(self, widget, data=None):
gtk.main_quit()
GTK_Main()
gtk.gdk.threads_init()
gtk.main()
输出:
<gtk.Button object at 0x25d8370 (GtkButton at 0x24348e0)>
<gtk.Button object at 0x25d83c0 (GtkButton at 0x24349a0)>
<gtk.Button object at 0x25d8410 (GtkButton at 0x2434a60)>
<gtk.Button object at 0x25d8460 (GtkButton at 0x2434b20)>
<gtk.Button object at 0x25d84b0 (GtkButton at 0x2434be0)>
<gtk.Button object at 0x25d8500 (GtkButton at 0x2434ca0)>
<gtk.Button object at 0x25d8550 (GtkButton at 0x2434d60)>
<gtk.Button object at 0x25d85a0 (GtkButton at 0x2434e20)>
<gtk.Button object at 0x25d85f0 (GtkButton at 0x2434ee0)>