2016-10-12 4 views
1

мне нужно, чтобы открыть диалоговое окно, login.py, то в случае успеха, диалог закроется и открыть главное окно-с home.py. Мне нужно сделать это с файлом, созданным Qt Designer с pyuic4. В заключение, мне нужно позвонить login.py и home.py хотя main.py.Использование Qt Designer файлы питона скрипт

Код main.py:

from PyQt4 import QtGui, QtCore 
import sqlite3, time 
from login import Ui_Dialog 
from home import Ui_MainWindow 

# Here I need to know how to call login.py, and 
# after logged in, how to change to home.py 

class RunApp(): 
    pass   

if __name__ == '__main__': 

    app = QtGui.QApplication(sys.argv) 
    window = RunApp() 
    sys.exit(app.exec_()) 

Кодекс login.py:

class Ui_Dialog(object): 
    def setupUi(self, Dialog): 
     Dialog.setObjectName(_fromUtf8("Dialog")) 
     Dialog.resize(194, 156) 

Кодекс home.py:

class Ui_MainWindow(object): 
    def setupUi(self, MainWindow): 
     MainWindow.setObjectName(_fromUtf8("MainWindow")) 
     MainWindow.resize(635, 396) 
     MainWindow.setAutoFillBackground(False) 

Update: Спасибо мои друзья;) работал для меня с этим кодом:

# -*- coding: utf-8 -*- 
from PyQt4 import QtGui, QtCore 
from login import Ui_Dialog 
from home import Ui_MainWindow 
import sqlite3, time, sys, os 

class MyLogin(QtGui.QDialog): 
    def __init__(self): 
     super().__init__() 
     self.ui = Ui_Dialog() 
     self.ui.setupUi(self) 
     self.ui.buttonBox.accepted.connect(self.openHome) 
    def openHome(self): 
     ui2 = MyHome() 
     ui2.show() 
     ui2.exec_() 


class MyHome(QtGui.QMainWindow): 
    def __init__(self, parent=None): 
     super().__init__(parent) 
     self.ui2 = Ui_MainWindow() 
     self.ui2.setupUi(self) 

if __name__=='__main__': 
    root = QtGui.QApplication(sys.argv) 
    app = MyLogin() 
    app.show() 
    root.exec_() 

ответ

1

Создать класс, производный от QWidget, и в его __init__ экземпляр класса пользовательского интерфейса, а затем вызвать setupUi(self) на него.

class RunApp(): 
    pass 

class MyDialog(QWidget): 
    def __init__(self, parent=None): 
     super().__init__() 
     self.ui = Ui_Dialog() 
     self.ui.setupUi(self) 

# do same for Ui_MainWindow via class MyMainWindow(QWidget) 
... 

Это объясняется в

0

Для входа страницы на основе PyQt нанесени Тион. я хотел бы предложить Использовать QstackedWidget

Page1 в stackedwidget для страницы входа

Page2 в stackwidget для домашнего экрана

все, что вам нужно, это простая функция Логина, который будет varify имени пользователя и пароля позволяют пользователю перейти на главный экран.

Вы можете изменить текущий индекс, чтобы открыть главный экран.

self.stackedWidget.setCurrentIndex(1) 
Смежные вопросы