如何将PyQt信号连接到外部函数

时间:2016-10-13 17:18:06

标签: python windows file pyqt

如何将一个文件中的pyqt按钮信号连接到另一个python文件中的函数?我尝试了各种各样的东西,但似乎没有任何效果。 这是第一个文件:

from PyQt4 import QtGui
from PyQt4.QtGui import QMainWindow
from MainUIFile import Ui_Main
from pythonfile import myOutsideFunction
class MainWindow(QMainWindow,Ui_file):
    def __init__(self):
        QMainWindow.__init__(self)
        self.setupUi(self)
        self.btn.clicked.connect(myOutsideFunction())

第一个调用的第二个文件:

def myOutsideFunction(self):
    # Do some stuff here

我将如何做到这一点?

2 个答案:

答案 0 :(得分:2)

您当前正在调用myOutsideFunction并将结果传递给connect函数,该函数需要将可调用作为参数。

从连接调用中的myOutsideFunction删除括号

self.btn.clicked.connect(myOutsideFunction)

答案 1 :(得分:0)

连接到代码之外的函数有什么重要性?你能不能做这样的事情:

def myOutsideFunction(a,b,c,d):
    #process variables/objects a,b,c,d as you wish
    return answer

from PyQt4 import QtGui
from PyQt4.QtGui import QMainWindow
from MainUIFile import Ui_Main
from pythonfile import myOutsideFunction
class MainWindow(QMainWindow,Ui_file):
    def __init__(self):
        QMainWindow.__init__(self)
        self.setupUi(self)
        self.btn.clicked.connect(self.pressed_the_button())
        #initialize your variables/objects for your outside function if need be

    def pressed_the_button(self):
        answer_from_outside_function = myOutsideFunction(self.a,self.b,self.c,self.d)
        # run whatever you need to here...