我正在用Python編寫一個使用多個.py腳本的GUI應用程序。我在QMainWindow中有一個變量,我需要在其他類中引用/訪問。我沒有將各種.py模塊導入Ui_MainWindow.py模塊的問題,但我似乎無法訪問QMainWindow類變量。訪問QMainWindow類變量 - Pyside/PyQt
這是我想要一個快速的僞代碼:
class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
self.lineEditScanBarcode.returnPressed.connect(self.LoginAttempt)
def LoginAttempt(self):
self.user_barcode = self.lineEditScanBarcode.text()
從閱讀中,我已經在這指的是類變量做,我得出的結論是,上述設置,我應該能夠借鑑「user_barcode」變量在其他類別如下:
class Receipt(QWidget, Ui_Receipt):
def __init__(self, parent=None):
QWidget.__init__(self, parent)
self.setupUi(self)
print(MainWindow.user_barcode)
我一直在使用「打印」命令,只是爲了測試是否它的工作
,但我收到以下錯誤:
Attribute Error: type object 'MainWindow' has no attribute 'user_barcode'
任何人都可以看到我明顯犯的錯誤嗎?我搜索了類似的查詢,但沒有發現任何相關的。
謝謝!
編輯:
這裏的app.exec_()的設置,我不知道如果我正確地傳遞父。
if __name__ == '__main__':
app = QApplication(sys.argv)
showMainWindow = MainWindow()
showReceipt = Receipt(MainWindow)
showMainWindow.show()
app.exec_()
我已經試過各種組合,但我要麼接受初始化錯誤,或引發類型錯誤。
謝謝你提供的ekhumoro,實際上更有意義。我已經修改了我的代碼以包含上面發佈的內容,現在我得到:TypeError:__init()__缺少1個必需的位置參數:'parent'。我在第一次引用if __name__ =='__main__':聲明和app.exec_()設置下的Receipt模塊時發生這種情況。有任何想法嗎? – jars121
嗯,它告訴你,你需要傳入一個'父':即窗口= MainWindow();收據=收據(窗口) – ekhumoro
我試過按照你的建議傳遞父(見上面的編輯),但它現在返回引發的TypeError。再次感謝您的幫助,非常感謝! – jars121