我试图在GTK+/Pygobject中使用python构建一个图形界面,但是遇到了一些问题。主要是事件。在
我需要什么?每次单击按钮时执行一个简单函数。 样本代码:
class Window(Gtk.Window):
def __init__(self):
[...]
button = Gtk.Button()
icon = Gio.ThemedIcon(name="system-shutdown-symbolic")
image = Gtk.Image.new_from_gicon(icon, Gtk.IconSize.BUTTON)
button.add(image)
button.clicked(self.on_button_clicked())
hb.pack_end(button)
[...]
def on_button_clicked(self):
print("Hello World")
回溯:
Traceback (most recent call last): File "main.py", line 7, in executa = igrafica.Window() File "[...]/igrafica.py", line 23, in init button.clicked(self.on_button_clicked()) TypeError: clicked() takes exactly 1 argument (2 given)
似乎很明显按钮。已单击()应该这样做,但是它的回溯说明了错误的参数数量,我无法从这个documentation i found中找出问题所在。我做错什么了?在
附言:有没有官方的“新手不宜太多硬核”文件?在
似乎很明显
clicked
信号应该做什么,但是您误解了连接信号处理程序的语法。通常这会引发一个更直观的错误,但在本例中,clicked()
还有一个您无意中调用的clicked()
方法。(该方法是非常旧但尚未弃用的API的一部分,并激发一个假的clicked
信号。)这样做:
{{ffy>不是把它作为一个方法来调用的,因为它不是一个方法
您正在这里呼叫
^{pr2}$on_button_clicked
。删除()
以简单地引用该方法:相关问题 更多 >
编程相关推荐