I am using PyQt5 and I have designed 3 layouts.
- Login
- Dashboard
- Settings.
Login
and Dashboard
pages have individual class files. When I am trying to login, it gets logged in. After that, I am trying to click the settings
button from my dashboard
, but nothing happens. The layout doesnt change.
Whereas, if I individually run the dashboard
file, clicking on the settings
button works and the layout changes. I am like confused, why this is happening. Here is a piece of my code:
login:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from login import Ui_loginWindow
from dashboard import Ui_dashboardWindow
class loginClass(Ui_loginWindow):
def __init__(self,dialog):
Ui_loginWindow.__init__(self)
self.setupUi(dialog)
self.loginBtn.clicked.connect(self.openDashboard)
def openDashboard(self):
self.dashboardWindow = Ui_dashboardWindow()
self.dashboardWindow.setupUi(loginWindow)
loginWindow.hide() #works
loginWindow.show() #works
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
loginWindow = QtWidgets.QMainWindow()
var = loginClass(loginWindow)
loginWindow.show()
sys.exit(app.exec_())
dashboard:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from dashboard import Ui_dashboardWindow
from settings import Ui_settingsWindow
class dashboardClass(Ui_dashboardWindow):
def __init__(self,dialog):
Ui_dashboardWindow.__init__(self)
self.setupUi(dialog)
self.settingsBtn.clicked.connect(self.openSettings)
def openSettings(self):
self.settingsWindow = Ui_settingsWindow()
self.settingsWindow.setupUi(dashboardWindow)
dashboardWindow.hide() #doesnot work
dashboardWindow.show() #doesnot work
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
dashboardWindow = QtWidgets.QMainWindow()
var = dashboardClass(dashboardWindow)
dashboardWindow.show()
sys.exit(app.exec_())
what i actually want