PYQT5登录界面跳转主界面方法
程序员文章站
2022-08-05 21:01:59
该问题,有很多种方法,但是很多方法要么这个有问题,要么那个有问题,最后终于找到一种没问题的方法。记录一下: 参考地址:https://www.jianshu.com/p/d18ff36a78d6?from=singlemessage Login.py(登录窗口)文件 Main.py(主窗口)文件 ......
该问题,有很多种方法,但是很多方法要么这个有问题,要么那个有问题,最后终于找到一种没问题的方法。记录一下:
参考地址: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_())
上一篇: 关于Htmlclassid命名规范案例
下一篇: C++枚举某个目录下所有文件的代码教程