Я пишу приложение с графическим интерфейсом на Python, которое использует несколько сценариев .py. У меня есть переменная в QMainWindow, к которой мне нужно обратиться/получить доступ в других классах. У меня нет проблем с импортом различных модулей .py в модуль Ui_MainWindow.py, но я не могу получить доступ к переменным класса QMainWindow.
Это быстрый псевдокод того, что я пытаюсь:
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'
Может ли кто-нибудь увидеть ошибку, которую я явно делаю? Я искал SO для подобных запросов, но не нашел ничего подходящего.
Спасибо!
РЕДАКТИРОВАТЬ:
Вот настройка app.exec_(), я не уверен, правильно ли я передаю родителя.
if __name__ == '__main__':
app = QApplication(sys.argv)
showMainWindow = MainWindow()
showReceipt = Receipt(MainWindow)
showMainWindow.show()
app.exec_()
Я пробовал разные комбинации, но получаю либо ошибку init, либо поднятую ошибку TypeError.