经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库运维 » Windows » 查看文章
PYQT5登录界面跳转主界面方法
来源:cnblogs  作者:爱迪生计划  时间:2018/11/6 17:21:09  对本文有异议

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

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

 

Login.py(登录窗口)文件

  1. import sys
  2. from PyQt5 import QtCore, QtGui, QtWidgets
  3. from PyQt5.QtCore import *
  4. from PyQt5.QtWidgets import QFileDialog, QMessageBox, QDockWidget, QListWidget
  5. from PyQt5.QtGui import *
  6.  
  7. from Ui_Login import Ui_Login_Window #由.UI文件生成.py文件后,导入创建的GUI类
  8.  
  9. from Main import * # Main.py为 主窗口代码文件
  10.  
  11. from class_MSSQL import MSSQL
  12. #QtWidgets.QMainWindow:继承该类方法
  13. class Login_window(QtWidgets.QMainWindow,Ui_Login_Window):
  14. #__init__: 析构函数,也就是类被创建后就会预先加载的项目。
  15. # 马上运行,这个方法可以用来对你的对象做一些你希望的初始化。
  16. def __init__(self):
  17. #这里需要重载一下Login_window,同时也包含了QtWidgets.QMainWindow的预加载项。
  18. super(Login_window, self).__init__()
  19. self.setupUi(self)
  20. # 将点击事件与槽函数进行连接
  21. self.btn_login.clicked.connect(self.btn_login_fuc)
  22. #登录按钮 函数
  23. def btn_login_fuc(self):
  24. #1 获取输入的账户和密码
  25. account = self.txt_1.text() # 记得text要打括号()!
  26. password = self.txt_2.text()
  27. if account == "" or password == "":
  28. reply = QMessageBox.warning(self,"警告","账号密码不能为空,请输入!")
  29. return
  30.  
  31. #2 查询数据库,判定是否有匹配
  32. ms = MSSQL()
  33. result = ms.Login_result(account, password)
  34. if(len(result) > 0):
  35. #1打开新窗口
  36. Ui_Main.show()
  37. #2关闭本窗口
  38. self.close()
  39. else:
  40. reply = QMessageBox.warning(self,"警告","账户或密码错误,请重新输入!")
  41. if __name__ == '__main__': #如果这个文件是主程序。
  42. app = QtWidgets.QApplication(sys.argv) #QApplication相当于main函数,也就是整个程序(很多文件)的主入口函数。对于GUI程序必须至少有一个这样的实例来让程序运行。
  43. window = Login_window() #生成一个实例(对象)
  44. Ui_Main = Ui_Main() #生成主窗口的实例
  45. window.show() #有了实例,就得让它显示。这里的show()是QWidget的方法,用来显示窗口。
  46. sys.exit(app.exec_()) # 调用sys库的exit退出方法,条件是app.exec_()也就是整个窗口关闭。

 

 Main.py(主窗口)文件

  1. import sys
  2. from PyQt5 import QtCore, QtGui, QtWidgets
  3. from PyQt5.QtCore import *
  4. from PyQt5.QtWidgets import *
  5. from PyQt5.QtGui import *
  6.  
  7. from Ui_Main import Ui_MainWindow #由.UI文件生成.py文件后,导入创建的GUI类
  8.  
  9. import math
  10. from PIL import Image, ImageDraw, ImageFont
  11. import numpy as np
  12. import os
  13. import cv2 as cvcv
  14. from class_Detection import Detection
  15. class Ui_Main(QtWidgets.QMainWindow,Ui_MainWindow):
  16. def __init__(self):
  17. super(Ui_Main, self).__init__()
  18. self.setupUi(self)
  19. # 将点击事件与槽函数进行连接
  20. self.btn_video.clicked.connect(self.btn_video_fuc)
  21. def btn_video_fuc(self):
  22. filename = QFileDialog.getOpenFileName(self,'open file','./')
  23. self.timer_camera = QTimer(self)
  24. self.cap = cvcv.cv2.VideoCapture(filename[0])
  25. self.timer_camera.timeout.connect(self.show_pic)
  26. self.timer_camera.start(10) #1毫秒
  27.  
  28.  
  29. def show_pic(self):
  30. dc = Detection()
  31. success,frame = self.cap.read()
  32. if success:
  33. show = dc.process_image(frame)
  34. showImage = QImage(show.data, show.shape[1], show.shape[0],QImage.Format_RGB888)
  35. self.label.setPixmap(QPixmap.fromImage(showImage))
  36. self.label.setScaledContents(True) #图片自适应
  37. self.timer_camera.start(10)
  38. if __name__ == '__main__':
  39. app = QtWidgets.QApplication(sys.argv)
  40. window = Ui_Main()
  41. window.show()
  42. sys.exit(app.exec_())

    

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号