Откройте QMainwindow из QDialog pyqt - PullRequest
       25

Откройте QMainwindow из QDialog pyqt

0 голосов
/ 01 октября 2018

У меня есть QDialog, который является окном входа в систему.Когда вход успешен, я хотел бы открыть свое MainWindow из класса QMainWindow.Я унаследовал свой QMainWidnow из файла UI_file, сгенерированного с помощью QtDesigner.

Если говорить более конкретно, у меня есть следующее:

login.py:

from PyQt4 import QtCore, QtGui
from main import ciras_main
class Ui_Dialog(object):
    def setupUi(self, Dialog):
    ....
    def retranslateUi(self, Dialog):
    ....
def welcomeWindowShow(self, username):
    self.welcomeWindow = QtGui.QMainWindow()
    self.ui = ciras_main(username)
    self.ui.setupUi(self.welcomeWindow, username)
    self.welcomeWindow.show()

ui_main.py:

from PyQt4 import QtCore, QtGui
class Ui_MainWindow(object):
    def setupUi(self, MainWindow, username):
    ...
    def retranslateUi(self, MainWindow):
    ...

и мой основной класс унаследован от ui_main.py

from PyQt4 import QtCore, QtGui
from PyQt4.QtGui import QDialog
from ui_main import *
class ciras_main(QtGui.QMainWindow, Ui_MainWindow):
    def __init__(self,username, parent=None):
        super(ciras_main, self).__init__(parent)
        self.setupUi(self, username)
        self.comboBox.activated.connect(self.selectProject)
        ...
    def selectProject(self):
        ...

Проблема заключается в следующем.Когда вход выполнен успешно, вызывается функция welcomeWindowShow (), чтобы открыть мое Mainwindow из класса ciras_main.Однако, кажется, он загружает только ui_main.py, потому что функция «selectProject», например (когда я изменяю свой комбобокс), ничего не выполняет.Однако, если я запускаю свое главное окно, не передавая login.py, все работает.Я думаю, что моя проблема в том, чтобы подключить функцию welcomeWindowShow (), чтобы открыть мое главное окно.

Есть идеи, почему это не работает?Большое спасибо

...