我看到之前曾提出类似问题的地方,但我不知道如何将其应用于我的情况。这是python代码:
def __init__(self):
print("running")
#set the glade file
self.gladefile = "/home/crokett/Data/Projects/Glade/MultiTerm.glade"
print("Gladefile is: self.gladefile")
#self.wTree = gtk.glade.XML(self.gladefile)
#try gtk file
builder = gtk.Builder()
builder.add_from_file(self.gladefile)
builder.connect_signals(self)
#Get the Main Window, and connect the "destroy" event
self.window = builder.get_object("mainWindow")
if (self.window):
print("Found main window")
self.window.connect("destroy", gtk.main_quit)
self.window.show()
def on_loadButton_clicked(self):
self.filechooser=builder.get_object("fileChooser")
self.filechooser.show()
使用上面的代码,我收到错误消息
TypeError: on_loadButton_clicked(self) takes exactly 1 argument (2 given)
我最初将on_LoadButton_Clicked定义为:
on_loadButton_clicked()
但是我收到了错误消息:
TypeError: on_loadButton_clicked) takes exactly 0 argument (2 given)
如果需要,我可以发布XML。 on_loadButton_Clicked方法应该打开一个文件选择器对话框
我看到帖子说我需要用(self)定义方法,但我不确定其他参数是什么。
答案 0 :(得分:1)
根据很少的搜索,我已经了解到on_loadButton_clicked
应该采取两个论点。第一个是self
,第二个是小部件。只需在函数中添加第二个参数,就有可能实际上无法使用它。