![](/img/trans.png)
[英]how to put a window inside another window employing mdiArea in from the menu, using PYQT5 and Python 3?
[英]How to send data from one window to another window Pyqt5 using signals
我正在嘗試將數據從我的登錄名 window 發送到管理儀表板我有三個文件
from PyQt5 import QtWidgets import sys, loginScreen, adminPanel from dbHandler import databaseHandler try: dbCon = databaseHandler() except e: print(e) app = QtWidgets.QApplication(sys.argv) window1 = loginScreen.loginScreen(dbCon) window2 = adminPanel.adminDashboard() window1.loginSignal.connect(window2.show) app.exec_()
from PyQt5 import uic from PyQt5.QtCore import pyqtSignal from PyQt5.QtWidgets import QWidget, QLineEdit, QDateEdit, QPushButton, QMessageBox class loginScreen(QWidget): loginSignal = pyqtSignal() username = None password = None date = None unameInp = None passInp=None dateInp=None systemDateBt = None loginBt = None dbCon=None def __init__(self, dbCon): super(loginScreen, self).__init__() uic.loadUi('screens/loginscreen.ui', self) self.dbCon = dbCon self.getWidgets() self.setSignals() self.show() def getWidgets(self): self.unameInp = self.findChild(QLineEdit, "unameInp") self.passInp = self.findChild(QLineEdit, "passInp") self.dateInp = self.findChild(QDateEdit, "dateInp") self.systemDateBt = self.findChild(QPushButton, "systemDateBt") self.loginBt = self.findChild(QPushButton, "loginBt") def setSignals(self): self.loginBt.clicked.connect(self.login) self.systemDateBt.clicked.connect(self.getSystemDate) def getSystemDate(self): self.dateInp.setDateTime(QtCore.QDateTime.currentDateTime()) def login(self): username = self.unameInp.text() password = self.passInp.text() authToken = self.dbCon.checkUser(username, password) if(authToken==-1): error = QMessageBox() error.setIcon(QMessageBox.Warning) error.setWindowTitle("Error") error.setText("Authentication Error") error.exec_() else: self.loginSignal.emit() self.close()
from PyQt5 import uic, QtCore from PyQt5.QtWidgets import QMainWindow, QLabel class adminDashboard(QMainWindow): def __init__(self): super(adminDashboard, self).__init__() uic.loadUi('screens/adminpanel.ui', self)
現在我想將信息從登錄屏幕發送到管理儀表板。 我已發出批准登錄的信號,但我如何發送日期和登錄者等信息,因為我有兩個配置文件,即 Admin 和 Cashier。
我通過在視圖 1 中實現 getData() 方法從一個視圖發送數據。我從登錄表單獲取數據並將其設置在 class 屬性中。 我在 controller 中使用 getData() 返回了 class 個屬性。我參數化視圖 2 的構造函數並使用 lambda function 的信號發送數據。
app=QtWidgets.QApplication(sys.argv) screen1 = loginScreen.loginScreen(dbCon) screen2 = adminPanel.adminDashboard(dbCon) data = screen1.getData() screen1.loginSignal.connect(lambda: screen2.setScreenData(data))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.