------------------
问题
最近在学习pyqt的时候遇到了一个问题,在类外编写某个信号的带参数的槽函数,同时在外部建立信号和槽的连接时,无法传递参数。
描述的不清楚,直接上代码
def openfile(self, widget):
path = QtWidgets.QFileDialog.getExistingDirectory(widget, "浏览", "./")
print(path)
上面这段代码就是我定义的槽函数,调用打开文件获取文件夹路径的操作,该函数中需要传递一个Widget作为参数,但是在使用的时候,传递的是函数名,而不是函数返回值(函数运算结果)
b.pushButton.clicked.connect(slots.openfile)
很明显,这样调用函数是无法达到想要的效果的,没有传递参数的话,在界面上点击按钮后,会直接报错退出
Process finished with exit code -1073740791 (0xC0000409)
那我们加上参数调用会怎么样呢?
a = QtWidgets.QWidget()
b.pushButton.clicked.connect(slots.openfile(a))
直接出现选择窗口.png
b.pushButton.clicked.connect(slots.openfile(a))
TypeError: argument 1 has unexpected type 'NoneType