python3.4+;PyQt5-如何在不同文件之间连接信号

python3.4+;PyQt5-如何在不同文件之间连接信号,python,pyqt5,Python,Pyqt5,我最近正在使用python3.4和PyQt5。它似乎太大,无法将所有代码放在一个.py文件中,而且不便于将来扩展。所以我试着把它分成几个文件 不幸的是,我在连接信号时遇到了一些问题 下面是我的代码示例: from PyQt5 import QtWidgets from PyQt5.QtWidgets import QMainWindow from Ui_BA import Ui_MainWindow from PyQt5.QtGui import * import AA, sys class

我最近正在使用python3.4和PyQt5。它似乎太大,无法将所有代码放在一个.py文件中,而且不便于将来扩展。所以我试着把它分成几个文件

不幸的是,我在连接信号时遇到了一些问题

下面是我的代码示例:

from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QMainWindow
from Ui_BA import Ui_MainWindow
from PyQt5.QtGui import *
import AA, sys

class BA(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        super(BA, self).__init__(parent)
        self.setupUi(self)
        a = AA.AAUI.search_button_released(self)
        self.aa_search_button.released.connect(lambda: a)

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    dlg = BA()
    dlg.show()
    sys.exit(app.exec_())
AA.py是这样的:

from PyQt5.QtWidgets import QMainWindow
from Ui_BA import Ui_MainWindow

class AAUI(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        super(AAUI, self).__init__(parent)
        self.setupUi(self)
    def search_button_released(self):
        self.statusBar.showMessage('BlaBlaBla')
当我运行主py时,状态栏会自动显示消息,而不是在单击搜索按钮之后


谢谢你的阅读。请帮助。

首先,您不应该以这种方式拆分项目。在我自己的作品中,我试图将每个文件中的每个类分开,而不是将一个类的代码分割成几个文件。将来你会遇到很多问题(这只是我的看法!)

在您的例子中,字符串
a=AA.AAUI.search\u button\u released(self)
自动执行该函数。您应该将其卸下并更换lambda:

self.aa_search_button.released.connect(lambda: AA.AAUI.search_button_released(self))

这会有帮助的

真管用!非常感谢。实际上我有几个类,这就是为什么我想把它们分成不同的文件。现在看起来还可以。