我有一个QPushButton连接,通过以下方式触发功能:
self.pbLoad.clicked.connect(self.loadData)
这非常有效,但是如果我想在代码中手动加载文件(用于调试),我想给该函数一个默认参数。我试过:
def loadData(self,fileName = None): if fileName is None: fileName = QtGui.QFileDialog.getOpenFileName(self, 'Choose data file to open', '.', filter='*.lvm') if fileName: self.filename = fileName self.parseFilename()
然而,这打破了我的按钮,它停止工作。类似地,如果我将按钮连接为:
self.pbLoad.clicked.connect(self.loadData())
启动GUI后,立即按下该按钮。你知道如何在不声明额外包装器函数的情况下让它工作吗?谢谢
您需要在信号和插槽之间具有兼容性
在这种情况下,您的信号不发送参数,您的插槽必须没有参数
我将使用包装器函数作为插槽,并调用要测试的实际函数
关于
self.pbLoad.clicked.connect(self.loadData())
当您尝试将按钮链接到函数时,实际上调用了函数:在这种情况下,您将按钮与函数的返回值相连接,返回值为None,因此,不连接按钮
我会使用:
相关问题 更多 >
编程相关推荐