我正在使用Gtk-Python开发一个小应用程序,其中我有大约10到20个按钮,当点击它们中的任何一个时,我希望按钮的值被添加到我已经完成它的文本框中到目前为止
button1.connect("clicked",button_function)
button2.connect("clicked",button_function)
...
所有功能。这是唯一的方法吗?还是有一种优雅的方式?按钮的值由
指定button1._value=#something
...
任何人都可以帮助我吗?
答案 0 :(得分:2)
通过这种方式,将按钮对象放在列表中,像这样调用它,
for button in buttonslist:
button.connect("clicked",button_function)
答案 1 :(得分:0)
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)>