PYQT5登錄界面跳轉主界面方法

来源:https://www.cnblogs.com/Edison25/archive/2018/11/06/9915845.html
-Advertisement-
Play Games

該問題,有很多種方法,但是很多方法要麼這個有問題,要麼那個有問題,最後終於找到一種沒問題的方法。記錄一下: 參考地址: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_()) 

    

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 輸出結果: ...
  • tune2fs tune2fs允許系統管理員在Linux ext2、ext3或ext4文件系統上調整各種可調的文件系統參數。這些選項的當前值可以使用-l選項顯示,也可以通過使用dumpe2fs (8)程式顯示。 此命令的適用範圍:RedHat、RHEL、Ubuntu、CentOS、SUSE、open ...
  • 格式:tar zcvf 壓縮後的路徑及包名 你要壓縮的文件 z:gzip壓縮 c:創建壓縮包 v:顯示打包壓縮解壓過程 f:接著壓縮 t:查看壓縮包內容 x:解壓 X:指定文件列表形式排除不需要打包壓縮的文件或目錄 -exclude:指定排除文件或目錄不需要打包壓縮的文件或目錄(也可以用正則匹配/通 ...
  • 1、前言 新購置一臺便宜伺服器做資料庫伺服器,減輕Web伺服器的壓力。 為了安全性,root密碼設置的非常複雜(隨機生成),厭倦了拷貝密碼登陸的歷史。 Putty基本用法都不會的請先花10分鐘自行學習。 2、開始 1、用PuTTY SSH 密鑰生成工具puttygen.exe生成密鑰 生成的密鑰類型 ...
  • 1、對虛擬機進行設置,點擊該虛擬機的設置在網路適配器下將網路連接設置為NAT模式。 2、對虛擬機進行設置,點擊虛擬機左上方的編輯-->虛擬網路編輯器,將WMnet信息設置為NAT模式,其它的無需改動,預設即可。 3、在虛擬機中vi /etc/sysconfig/network-scripts/ifc ...
  • Linux記憶體文件系統:可滿足高IO的要求 ramdisk: 基於虛擬在記憶體中的其他文件系統(ex2fs)。 掛載方式:mount /dev/ram /mnt/ramdisk ramfs: 物理記憶體文件系統,只存在於物理記憶體中。其大小也不是固定的,而是隨著所需要的空間動態得增減。 掛載方式:moun ...
  • 指令 cal 查看日曆date 查看日期bc 計算器ls 查看文件ls -l 查看具體信息(許可權,時間等)ls -a 查看所有的文件包括隱藏文件ll 作用同上d* 開頭的都是文件夾,- 開頭的都是文件who am i 用戶信息cat "文件名" 在控制台直接顯示文件內容vi/vim "文件名" 創建 ...
  • 一、命令介紹 top 命令用於動態的監控進程活動與系統負載信息。 格式為 top [參數] 二、實例 直接運行top命令 top命令執行結果的前五行為系統整體的統計信息,代表含義如下: 第1行:系統時間、運行時間、登陸終端數、系統負載(分別為1分鐘、5分鐘、15分鐘內的平均值) 第2行:進程總數、運 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...