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

参考地址: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_()) 

    

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

  1. 完美解决PYQT5登录界面跳转主界面方法

    该问题,有很多种方法,但是很多方法要么这个有问题,要么那个有问题,最后终于找到一种没问题的方法.记录一下: Login.py(登录窗口)文件 import sys from PyQt5 import ...

  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. Android之Activity界面跳转--生命周期方法调用顺序

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. 6.使用桌面版AI伴侣或手机版AI伴侣实时预览编程效果

    1.根据自己系统下载对应版本AI伴侣,最好解压到D盘根目录. 运行ailaunch.bat ,可以启动原本自带的2.46版AI伴侣.运行AI伴侣247.bat可以启动汉化2.47版的AI伴侣.并且默认 ...

  2. npm 模块化管理

    我们要使用 npm 进行包管理,首先我们得安装 npm,怎么安装?其实只要你安装了 node,那便相当于安装了 npm: node下载地址:http://nodejs.cn/download/ 由于 ...

  3. CVE-2019-0686|Microsoft Exchange特权提升漏洞补丁已发布

    Microsoft Exchange Server中存在一个特权提升漏洞.成功利用此漏洞的攻击者可以获得与Exchange服务器的任何其他用户相同的权限.这可能允许攻击者执行诸如访问其他用户的邮箱之类 ...

  4. ASP.NET Aries 高级开发教程:Excel导入配置之规则说明(下)

    前言: 前面两篇都是大体介绍流程,有一些配置细节,没有细说,这里用一篇补上. 1.Excel配置项 起始行索引.列头跨行数: 对于自定义的Excel导入模板(有时候模板是由客户提供,模板的规则很乱) ...

  5. php批量修改文件名称

    <?php//利用PHP目录和文件函数遍历用户给出目录的所有的文件和文件夹,修改文件名称function fRename($dirname){ if(!is_dir($dirname)){ ec ...

  6. chrome谷歌开发者工具(hover时候的css样式怎么在浏览器调试)

    很多小伙伴在开发的时候,大多是在用谷歌开发者工具调试代码(快捷键F12 或 Ctrl-Shift-i). 可能会经常遇到需要调试hover样式的时候,一般都是直接改代码,然后在页面上刷新查看效果. 其 ...

  7. MacBook PyCharm激活码(附视频)

    Windows激活请看这里:pyCharm最新2019激活码 此教程实时更新,请放心使用:如果有新版本出现猪哥都会第一时间尝试激活: pycharm官网下载地址:http://www.jetbrain ...

  8. mysql的学习笔记(三)

    1.外键约束(保持数据一致,完整.实现一对多或一对一) 父表(参照的表)和子表(有外键列的表)必须使用相同的存储引擎InnoDB,禁止使用临时表. 外键列和参照列必须具有相似的数据类型.其中数字的长度 ...

  9. python接口自动化(十)--post请求四种传送正文方式(详解)

    简介 post请求我在python接口自动化(八)--发送post请求的接口(详解)已经讲过一部分了,主要是发送一些较长的数据,还有就是数据比较安全等.我们要知道post请求四种传送正文方式首先需要先 ...

  10. SpringBoot整合Swagger2,再也不用维护接口文档了!

    前后端分离后,维护接口文档基本上是必不可少的工作.一个理想的状态是设计好后,接口文档发给前端和后端,大伙按照既定的规则各自开发,开发好了对接上了就可以上线了.当然这是一种非常理想的状态,实际开发中却很 ...