当前位置: 移动技术网 > 科技>操作系统>windows > PYQT5登录界面跳转主界面方法

PYQT5登录界面跳转主界面方法

2018年11月07日  | 移动技术网科技  | 我要评论

风流老板俏秘书影评,湖州五中贴吧,北京反腐败宣言

该问题,有很多种方法,但是很多方法要么这个有问题,要么那个有问题,最后终于找到一种没问题的方法。记录一下:

参考地址:https://www.jianshu.com/p/d18ff36a78d6?from=singlemessage

 

login.py(登录窗口)文件

import sys
from pyqt5 import qtcore, qtgui, qtwidgets
from pyqt5.qtcore import *
from pyqt5.qtwidgets import qfiledialog, qmessagebox, qdockwidget, qlistwidget
from pyqt5.qtgui import *

from ui_login import ui_login_window  #由.ui文件生成.py文件后,导入创建的gui类

from main import * # main.py为 主窗口代码文件

from class_mssql import mssql



#qtwidgets.qmainwindow:继承该类方法
class login_window(qtwidgets.qmainwindow,ui_login_window):  
 
    #__init__: 析构函数,也就是类被创建后就会预先加载的项目。
    # 马上运行,这个方法可以用来对你的对象做一些你希望的初始化。
    def __init__(self):  
        #这里需要重载一下login_window,同时也包含了qtwidgets.qmainwindow的预加载项。
        super(login_window, self).__init__()  
        self.setupui(self)

        # 将点击事件与槽函数进行连接
        self.btn_login.clicked.connect(self.btn_login_fuc) 



    #登录按钮 函数
    def btn_login_fuc(self):
        #1 获取输入的账户和密码
        account = self.txt_1.text()  # 记得text要打括号()!
        password = self.txt_2.text()
        if account == "" or password == "":
            reply = qmessagebox.warning(self,"警告","账号密码不能为空,请输入!")
            return

        #2 查询数据库,判定是否有匹配
        ms = mssql()
        result = ms.login_result(account, password)
        if(len(result) > 0):
            #1打开新窗口
            ui_main.show()
            #2关闭本窗口
            self.close()
        else:
            reply = qmessagebox.warning(self,"警告","账户或密码错误,请重新输入!")


if __name__ == '__main__': #如果这个文件是主程序。
    app = qtwidgets.qapplication(sys.argv) #qapplication相当于main函数,也就是整个程序(很多文件)的主入口函数。对于gui程序必须至少有一个这样的实例来让程序运行。
    window = login_window() #生成一个实例(对象)
    ui_main = ui_main() #生成主窗口的实例
    window.show() #有了实例,就得让它显示。这里的show()是qwidget的方法,用来显示窗口。
    sys.exit(app.exec_()) # 调用sys库的exit退出方法,条件是app.exec_()也就是整个窗口关闭。

 

 main.py(主窗口)文件

import sys
from pyqt5 import qtcore, qtgui, qtwidgets
from pyqt5.qtcore import *
from pyqt5.qtwidgets import *
from pyqt5.qtgui import *

from ui_main import ui_mainwindow  #由.ui文件生成.py文件后,导入创建的gui类

import math
from pil import image, imagedraw, imagefont  
import numpy as np
import os
import cv2 as cvcv

from class_detection import detection


class ui_main(qtwidgets.qmainwindow,ui_mainwindow):  
 
    def __init__(self): 
        super(ui_main, self).__init__()  
        self.setupui(self)

        # 将点击事件与槽函数进行连接
        self.btn_video.clicked.connect(self.btn_video_fuc)


    def btn_video_fuc(self):
        filename = qfiledialog.getopenfilename(self,'open file','./')

        self.timer_camera = qtimer(self)

        self.cap = cvcv.cv2.videocapture(filename[0])

        self.timer_camera.timeout.connect(self.show_pic)
        self.timer_camera.start(10) #1毫秒


    def show_pic(self):
        dc = detection()
        success,frame = self.cap.read()
        

        if success:
            show = dc.process_image(frame)
            showimage = qimage(show.data, show.shape[1], show.shape[0],qimage.format_rgb888)
            self.label.setpixmap(qpixmap.fromimage(showimage)) 
            self.label.setscaledcontents(true)  #图片自适应
            self.timer_camera.start(10)



if __name__ == '__main__': 
    app = qtwidgets.qapplication(sys.argv) 
    window = ui_main()
    window.show() 
    sys.exit(app.exec_()) 

    

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网