0

我正在使用 Gtk-Python 开发一个小型应用程序,其中我有大约 10 到 20 个按钮,当单击其中任何一个时,我希望将按钮的值附加到我已经完成的文本框中

button1.connect("clicked",button_function)
button2.connect("clicked",button_function)
...

对于所有功能。这是唯一的方法吗?或者有什么优雅的方法吗?并且按钮的值由

button1._value=#something
...

谁能帮我?

4

2 回答 2

1

这样,将按钮对象放在一个列表中,这样调用它,

for button in buttonslist: 
    button.connect("clicked",button_function)
于 2013-05-11T11:30:55.730 回答
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)>
于 2013-10-23T00:11:06.697 回答