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

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_())

完美解决PYQT5登录界面跳转主界面方法的更多相关文章

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

    该问题,有很多种方法,但是很多方法要么这个有问题,要么那个有问题,最后终于找到一种没问题的方法.记录一下: 参考地址:https://www.jianshu.com/p/d18ff36a78d6?fr ...

  2. “MVC+Nhibernate+Jquery-EasyUI”信息发布系统 第二篇(数据库结构、登录窗口、以及主界面)

    “MVC+Nhibernate+Jquery-EasyUI”信息发布系统 第二篇(数据库结构.登录窗口.以及主界面) 一.在上一篇文章中,主要说的就是把主框架搭建起来,并且Nhibernate能达到增 ...

  3. pyqt5 主界面打开新主界面、打开Dialog、打开提示框的实现模板

    import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * ###### ...

  4. pyqt5 主界面打开新主界面的实现

    import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * ###### ...

  5. C# winfrom界面跳转闪烁问题解决方法

    在窗体的构造函数中添加代码: SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.AllPaintingInWmPaint, ...

  6. Android之Activity界面跳转--生命周期方法调用顺序

    这本是一个很基础的问题,很惭愧,很久没研究这一块了,已经忘得差不多了.前段时间面试,有面试官问过这个问题.虽然觉得没必要记,要用的时候写个Demo,打个Log就清楚了.但是今天顺手写了个Demo,也就 ...

  7. react中界面跳转 A界面跳B界面,返回A界面,A界面状态保持不变 redux的state方法

    在上一篇文章中说过了react中界面A跳到B,返回A,A界面状态保持不变,上篇中使用的是传统的localStorage方法,现在来使用第二种redux的state方法来实现这个功能 现在我刚接触red ...

  8. “MVC+Nhibernate+Jquery-EasyUI”信息发布系统 第二篇(数据库结构、登录窗口、以及主界面)

    一.在上一篇文章中,主要说的就是把主框架搭建起来,并且Nhibernate能达到增删改查的地步.测试好之后再来看这篇文章,我的主框架相对来说简答一点,重点还是实现系统的功能,以及对Jquery-Eas ...

  9. WinForm 实现登录,验证成功,关闭登录界面,显示主界面

    点击登录按钮时: ") { this.DialogResult = DialogResult.OK; this.Close(); } else { MessageBox.Show(" ...

随机推荐

  1. Java并发包2--ThreadLocal的使用及原理浅析

    ThreadLocal 是本地线程变量,是一个以ThreadLocal对象为key,任意对象为value的存储结构. 一.使用案例 1.定义线程类MyThread,代码如下: public class ...

  2. web.xml——Error:cvc-complex-type.2.4.a: Invalid content was found starting with element

    配置web.xml文件时报错 错误:cvc-complex-type.2.4.a: Invalid content was found starting with element 详细报错信息:cvc ...

  3. Java 对象的封装,继承,抽象,接口写法

    面向对象的封装写法        关键字 private class A    {        private int a=1;        private void work()         ...

  4. 在树莓派里搭建 Lighttpd 服务器

    Lighttpd 像 Ngnix 一样,是被设计运行在低内存,低 CPU 负载的设备上,它们都非常适合在树莓派上运行. 本文将介绍如何在树莓派上运行基本配置的 Lighttpd ,以及如何与 PHP- ...

  5. Linux学习(一):常用命令

    init 0:关机 init 3:命令行模式 init 5:图形界面模式 init 6:重启 shutdown -h now:立马关机 ls:文件列表 参数:-l 详细列表 cd:切换目录 用法实例: ...

  6. SDL初识

    1.SDL是什么? SDL(Security Development Lifecycle)安全开发生命周期.是微软提出的从安全角度指导软件开发的管理模式,在软件开发的生命周期中尽可能地发现安全隐患,降 ...

  7. Vue中控制更新的方式

    一.  强制更新的实例方法   vm.$forceUpdate() 迫使 Vue 实例重新渲染.注意它仅仅影响实例本身和插入插槽内容的子组件,而不是所有子组件. 在没有留意到数组或对象的变更检测注意事 ...

  8. Java-接口(另类抽象)

    1.1 特点 用interface定义 接口中所有成员变量都默认是由public static final修饰的 接口中所有方法都默认是由public abstract修饰的 接口没有构造器 接口采用 ...

  9. Rocket - tilelink - fastProperty

    https://mp.weixin.qq.com/s/9nikweQUGG5FO3Z8t6feaw 介绍Parameters中定义的fastProperty的实现.(使用最近的新版本,差别不大)   ...

  10. Chisel3 - Scala语言专家

    https://mp.weixin.qq.com/s/j8mt_qvwliKIKtlN6JcyqQ   介绍Intellij IDEA安装Scala插件后,如何在阅读和编码两方面助益开发者.     ...