[英]python3.4 + PyQt5 - How to connect signals between different files
我最近正在使用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會自動顯示消息,而不是單擊搜索按鈕之后。
感謝您的閱讀。 請幫忙。
首先,您不應該以這種方式拆分項目。 在我自己的作品中,我試圖將每個文件中的每個類分開,而不是將一個類代碼拆分到多個文件中。 將來您會遇到很多問題(這只是我的意見!)
在您的情況下,字符串a = AA.AAUI.search_button_released(self)
自動執行該功能。 您應該刪除它並替換您的lambda:
self.aa_search_button.released.connect(lambda: AA.AAUI.search_button_released(self))
會的!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.