저는 여러 개의 .py 스크립트를 사용하는 Python으로 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_()
나는 다양한 조합을 시도했습니다,하지만 난 하나가 초기화 오류가 발생하거나 제기 형식 오류입니다. user_barcode 그 클래스의 인스턴스 의 특성 인 반면 MainWindow를하기, 클래스 때문에
감사 : 물론,이 생성자는 아마 다음과 같아야합니다 그래서,의 부모로서 항상 MainWindow를이 는 반드시 영수증을 의미한다. 위에서 작성한 내용을 포함하도록 코드를 수정했으며, 이제는 다음을 얻습니다. TypeError : __init() __ 필수 1 개의 위치 인수 : 'parent'. 이 문제는 if __name__ == '__main__': declaration 및 app.exec_() 설정에서 Receipt 모듈을 처음 참조 할 때 발생합니다. 어떤 아이디어? – jars121
음, '부모'를 전달해야한다고 말하고 있습니다. 즉, window = MainWindow(); receipt = receipt (window) – ekhumoro
부모님이 제안한대로 전달하려고 시도했지만 (위의 편집 참조), 제기 된 TypeError를 반환합니다. 도와 주셔서 다시 한 번 감사드립니다. – jars121