我最近在使用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时,statusBar会自动显示消息,而不是在点击搜索按钮后显示消息。
感谢您的阅读。请帮忙。
答案 0 :(得分:0)
首先,您不应该以这种方式拆分项目。在我自己的作品中,我试图将每个文件中的每个类分开,而不是在几个文件之间拆分一个类代码。将来你会遇到很多问题(这只是我的意见!)
在您的情况下,字符串a = AA.AAUI.search_button_released(self)
会自动执行该功能。你应该删除它并替换你的lambda:
self.aa_search_button.released.connect(lambda: AA.AAUI.search_button_released(self))
这会有所帮助!