国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于PyQt5的UI界面開(kāi)發(fā)——信號(hào)與槽

這篇具有很好參考價(jià)值的文章主要介紹了基于PyQt5的UI界面開(kāi)發(fā)——信號(hào)與槽。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

信號(hào)與槽的機(jī)制

PyQt5采用了一種被稱為“信號(hào)與槽”機(jī)制的編程模式,用于處理對(duì)象間的通信和事件處理。在PyQt5中,信號(hào)(signal)是對(duì)象發(fā)出的特定事件,例如按鈕被點(diǎn)擊、文本被修改等。而槽(slot)是與信號(hào)相關(guān)聯(lián)的特定動(dòng)作或函數(shù)。當(dāng)信號(hào)被觸發(fā)時(shí),與之相關(guān)聯(lián)的槽會(huì)被自動(dòng)調(diào)用。

信號(hào)發(fā)送與槽的接收

槽函數(shù)為控件的內(nèi)置函數(shù)的操作方法,不同類型的控件分別內(nèi)置了若干方法,例如 QPushButton 控件內(nèi)置的方法包括:點(diǎn)擊、選中、狀態(tài)變化、顯示菜單等,而 QLineEdit 控件內(nèi)置的方法包括:清空、復(fù)制、剪切、粘貼、全選、撤銷操作等。使用控件內(nèi)置的方法作為槽函數(shù),可以直接調(diào)用,不需要對(duì)函數(shù)進(jìn)行定義。

在下面添加一個(gè)pushButton,修改下大小后進(jìn)行復(fù)制。LineEdit也是同樣的操作。
基于PyQt5的UI界面開(kāi)發(fā)——信號(hào)與槽,基于PyQt5的UI界面開(kāi)發(fā),qt,python,開(kāi)發(fā)語(yǔ)言

?現(xiàn)在我們就可以通過(guò)右側(cè)的對(duì)象查看器來(lái)看我們控件的一些信息。

基于PyQt5的UI界面開(kāi)發(fā)——信號(hào)與槽,基于PyQt5的UI界面開(kāi)發(fā),qt,python,開(kāi)發(fā)語(yǔ)言

其上的中文均需要自己修改。

信號(hào)與槽的連接

我們點(diǎn)擊頂部導(dǎo)航欄Edit,選擇編輯信號(hào)/槽,接下來(lái)我們按住"按鍵1",按住不松將其拉向文本編輯1,這時(shí)會(huì)有彈窗顯示。這里選擇clicked(),右側(cè)選擇clear(),最后選擇ok。

基于PyQt5的UI界面開(kāi)發(fā)——信號(hào)與槽,基于PyQt5的UI界面開(kāi)發(fā),qt,python,開(kāi)發(fā)語(yǔ)言

這里在退出后,點(diǎn)擊Ctrl+R預(yù)覽。

這里我們點(diǎn)擊按鍵1,右側(cè)的文本被清空。?

基于PyQt5的UI界面開(kāi)發(fā)——信號(hào)與槽,基于PyQt5的UI界面開(kāi)發(fā),qt,python,開(kāi)發(fā)語(yǔ)言

槽函數(shù)為自定義函數(shù)的操作

上面我們使用的控件內(nèi)置的方法作為槽函數(shù),可以直接調(diào)用,不需要對(duì)函數(shù)進(jìn)行其他的定義。但實(shí)際我們的工程項(xiàng)目還是需要我們自己去定義,這樣我們的界面功能才可以更加的完善。

上面的按鍵1實(shí)現(xiàn)的功能是清空右側(cè)的文本,現(xiàn)在我們就在這里自定義一下按鍵2的功能,比如我想實(shí)現(xiàn)按下按鍵2后,清空對(duì)應(yīng)右側(cè)的文本,并添加上“Key 2 operation successful”。在主程序當(dāng)中,我們需要去自定義一個(gè)函數(shù),名為click_pushButton_2()。

需要注意的是該槽函數(shù)的接收者并不是文本編輯控件“l(fā)ineEdit_2”,而是主窗口控件 “MainWindow”。因?yàn)殡m然這里我們是對(duì)“l(fā)ineEdit_2”進(jìn)行操作,但并不意味著只能對(duì)其進(jìn)行操作。

QtDesigner設(shè)置信號(hào)/槽的連接的方法如下:

首先需要在 QtDesigner 將自定義函數(shù)添加到槽函數(shù)配置連接表中。

基于PyQt5的UI界面開(kāi)發(fā)——信號(hào)與槽,基于PyQt5的UI界面開(kāi)發(fā),qt,python,開(kāi)發(fā)語(yǔ)言

請(qǐng)與我選擇一樣的步驟,點(diǎn)擊改變信號(hào)/槽,進(jìn)入后如下顯示:

基于PyQt5的UI界面開(kāi)發(fā)——信號(hào)與槽,基于PyQt5的UI界面開(kāi)發(fā),qt,python,開(kāi)發(fā)語(yǔ)言

對(duì)話框的上方顯示槽的選項(xiàng),下方顯示信號(hào)選項(xiàng),在上方我們點(diǎn)擊綠色的+號(hào),可以不斷地添加我們自定義的槽函數(shù)。

如何自定義槽函數(shù)呢?這里我們先暫時(shí)放下,放到最后再講?,F(xiàn)在先進(jìn)行信號(hào)與槽的連接,與上面的方法是相同的。

有些不一樣的是,我們這里是拉出來(lái)不進(jìn)行連接,這里會(huì)出現(xiàn)一個(gè)接地符號(hào)。

基于PyQt5的UI界面開(kāi)發(fā)——信號(hào)與槽,基于PyQt5的UI界面開(kāi)發(fā),qt,python,開(kāi)發(fā)語(yǔ)言

自定義槽函數(shù)是在主程序中編寫(xiě)自定義的函數(shù)。

相同的發(fā)送者與接收者

這里也是屬于信號(hào)與槽部分的內(nèi)容,什么是相同的發(fā)送者與接收者呢?比如我的一個(gè)開(kāi)關(guān),它能控制on和off,類似這種所有叫做相同的發(fā)送者與接收者。

具體的操作是這樣的,我們首先將控件對(duì)象 “pushButton_4” 從按鈕控件 QPushButton 改變?yōu)檫x項(xiàng)框控件 “QCheckBox”。

基于PyQt5的UI界面開(kāi)發(fā)——信號(hào)與槽,基于PyQt5的UI界面開(kāi)發(fā),qt,python,開(kāi)發(fā)語(yǔ)言

這里我們將線引出了后,指向自己,出現(xiàn)彈窗,左側(cè)選擇clicked(bool),右側(cè)選擇setChecked(bool)。

基于PyQt5的UI界面開(kāi)發(fā)——信號(hào)與槽,基于PyQt5的UI界面開(kāi)發(fā),qt,python,開(kāi)發(fā)語(yǔ)言

發(fā)送者是動(dòng)作對(duì)象

常見(jiàn)的信號(hào)發(fā)送者是圖形窗口中的各種控件對(duì)象,但也可以是動(dòng)作對(duì)象。

信號(hào)的發(fā)送者是動(dòng)作對(duì)象時(shí),信號(hào)的接收者通常是頂層對(duì)象 “MainWindow”,而槽函數(shù)可以是對(duì)象 “MainWindow” 的內(nèi)置函數(shù),也可以是自定義函數(shù)。

在右側(cè)最下面,選擇信號(hào)與槽。將自定義函數(shù) trigger_actHelp() 添加到槽函數(shù)配置連接表中。

配置如下:

基于PyQt5的UI界面開(kāi)發(fā)——信號(hào)與槽,基于PyQt5的UI界面開(kāi)發(fā),qt,python,開(kāi)發(fā)語(yǔ)言

面向?qū)ο蟪绦蛟O(shè)計(jì)

在前面我們的代碼是這樣的。

from PyQt5.QtWidgets import QApplication, QMainWindow
import sys
import uiDemo1
if __name__ == '__main__':
    app = QApplication(sys.argv)  # 創(chuàng)建應(yīng)用程序?qū)ο?    MainWindow = QMainWindow()  # 創(chuàng)建主窗口
    ui = uiDemo1.Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()  # 顯示主窗口
    sys.exit(app.exec_())  # 在主線程中退出

這里是使用的GUIDemo3.py,在主程序中創(chuàng)建主窗口后,直接調(diào)用 UI 中的 Ui_MainWindow(),這種方法叫做面向?qū)ο蟆?/p>

那么在這里我們需要使用面向?qū)ο蟮姆椒ㄟM(jìn)行設(shè)計(jì),

from uiDemo1 import Ui_MainWindow  # 導(dǎo)入 uiDemo1.py 中的 Ui_MainWindow 界面類

class MyMainWindow(QMainWindow, Ui_MainWindow):  # 繼承 QMainWindow類和 Ui_MainWindow界面類
    def __init__(self, parent=None):
        super(MyMainWindow, self).__init__(parent)  # 初始化父類
        self.setupUi(self)  # 繼承 Ui_MainWindow 界面類
        
if __name__ == '__main__':
    app = QApplication(sys.argv)  # 在 QApplication 方法中使用,創(chuàng)建應(yīng)用程序?qū)ο?    myWin = MyMainWindow()  # 實(shí)例化 MyMainWindow 類,創(chuàng)建主窗口
    myWin.show()  # 在桌面顯示控件 myWin
    sys.exit(app.exec_())  # 結(jié)束進(jìn)程,退出程序

上面的自定義槽函數(shù)也是在這類下面進(jìn)行編寫(xiě)。在之前我們已經(jīng)完成了按鍵1,清空了lineEdit_1,接下來(lái),我們來(lái)完善按鍵2和按鍵3,以及幫助的功能。

我的按鍵2,我想通過(guò)點(diǎn)擊,讓lineEdit_2變?yōu)镵ey2 successful,我的按鍵3想要在lineEdit_1、lineEdit_2、lineEdit_3上面分布顯示年月、時(shí)間、Demo4 of GUI by PyQt5等。

那么完整的代碼如下:

import sys
from datetime import datetime
from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox
from uiDemo1 import Ui_MainWindow

class MyMainWindow(QMainWindow, Ui_MainWindow):  # 繼承 QMainWindow類和 Ui_MainWindow界面類
    def __init__(self, parent=None):
        super(MyMainWindow, self).__init__(parent)  # 初始化父類
        self.setupUi(self)  # 繼承 Ui_MainWindow 界面類

    def click_pushButton_2(self):
        self.lineEdit_2.setText("Key2 successful")
        return

    def click_pushButton_3(self):
        nowDate = datetime.now().strftime("%Y-%m-%d")
        nowTime = datetime.now().strftime("%H:%M:%S")
        self.lineEdit_1.setText("Current date: {}".format(nowDate))  # 顯示日期
        self.lineEdit_2.setText("Current time: {}".format(nowTime))  # 顯示時(shí)間
        self.lineEdit_3.setText("Demo4 of GUI by PyQt5")  #
        return

    def trigger_actHelp(self):
        QMessageBox.about(self, "About",
                          """道路裂縫檢測(cè)系統(tǒng) v1.0\nCopyright Auorui, SWUST 2023""")
        return

if __name__ == '__main__':
    app = QApplication(sys.argv)  # 在 QApplication 方法中使用,創(chuàng)建應(yīng)用程序?qū)ο?    myWin = MyMainWindow()  # 實(shí)例化 MyMainWindow 類,創(chuàng)建主窗口
    myWin.show()  # 在桌面顯示控件 myWin
    sys.exit(app.exec_())  # 結(jié)束進(jìn)程,退出程序

效果圖:


基于PyQt5的UI界面開(kāi)發(fā)——信號(hào)與槽,基于PyQt5的UI界面開(kāi)發(fā),qt,python,開(kāi)發(fā)語(yǔ)言文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-573849.html

到了這里,關(guān)于基于PyQt5的UI界面開(kāi)發(fā)——信號(hào)與槽的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • QT調(diào)用不同UI界面響應(yīng),對(duì)話框跳轉(zhuǎn)到主頁(yè)面UI,用信號(hào)與槽傳遞信息,兩級(jí)信號(hào)傳遞

    QT調(diào)用不同UI界面響應(yīng),對(duì)話框跳轉(zhuǎn)到主頁(yè)面UI,用信號(hào)與槽傳遞信息,兩級(jí)信號(hào)傳遞

    在MainWindow界面有一個(gè)按鍵”新建”,點(diǎn)擊后需要生成一個(gè)輸入對(duì)話框,實(shí)例用到了processDialog類對(duì)象。 我新建一行數(shù)據(jù)完成后,需要更新MainWindow表格的視圖,此時(shí)就需要調(diào)用寫(xiě)在MainWIndow下的函數(shù)MainWindow::showProcess(vectorPCB* readyQueue) 但是如果實(shí)例化一個(gè)MainWidow對(duì)象,此時(shí)修改的

    2024年02月12日
    瀏覽(82)
  • 【Python】pyqt5入門教程之第一個(gè)UI界面

    【Python】pyqt5入門教程之第一個(gè)UI界面

    1.pyqt5工具安裝 (1)使用pip工具安裝PyQt5工具: (2)安裝Qt Designer圖形界面開(kāi)發(fā)工具: 安裝完成后所在路徑 (3)安裝QtDesigner 安裝完成后所在路徑 designer.exe路徑 啟動(dòng)QtDesigner 2.第一個(gè)QT窗口程序 Pycharm配置 找到py文件,右鍵External Tool — QTDesigner—就可以啟動(dòng) QTDesigner .ui文件轉(zhuǎn)換

    2024年02月15日
    瀏覽(26)
  • 如何在pycharm里邊配置pyqt5、qt5-applications,使用拖拽功能設(shè)計(jì)UI界面

    如何在pycharm里邊配置pyqt5、qt5-applications,使用拖拽功能設(shè)計(jì)UI界面

    安裝pyqt5和qt5-applications 網(wǎng)上很多說(shuō)要安裝pyqt5-tools,但是里邊并沒(méi)有找到designer.exe這個(gè)文件,最終是在qt5-applications里邊的Qt/bin找到了designer.exe文件。 在pycharm中配置designer working directory可以自己手動(dòng)配置工程目錄,也可以直接點(diǎn)擊后面的按鈕選擇$ProjectFileDir$ 在pycharm中配置p

    2024年02月02日
    瀏覽(27)
  • 基于PyQt5的圖形化界面開(kāi)發(fā)——隊(duì)列動(dòng)畫(huà)演示

    基于PyQt5的圖形化界面開(kāi)發(fā)——隊(duì)列動(dòng)畫(huà)演示

    本文使用PyQt5制作圖形化界面演示數(shù)據(jù)結(jié)構(gòu)中的 隊(duì)列 操作,與上一節(jié)隊(duì)列動(dòng)畫(huà)相對(duì)應(yīng) 基于PyQt5的圖形化界面開(kāi)發(fā)——隊(duì)列動(dòng)畫(huà)演示 操作系統(tǒng):Windows10 專業(yè)版 開(kāi)發(fā)環(huán)境:Pycahrm Comunity 2022.3 Python解釋器版本:Python3.8 第三方庫(kù):PyQt5 隊(duì)列(Queue)是一種常用的數(shù)據(jù)結(jié)構(gòu),類似于現(xiàn)

    2024年02月07日
    瀏覽(23)
  • 基于PyQt5的圖形化界面開(kāi)發(fā)——自制ssh工具

    基于PyQt5的圖形化界面開(kāi)發(fā)——自制ssh工具

    本節(jié)我們使用PyQt5來(lái)制作一個(gè)簡(jiǎn)單的ssh小工具。 操作系統(tǒng):Windows10 專業(yè)版 開(kāi)發(fā)環(huán)境:Pycahrm Comunity 2022.3 Python解釋器版本:Python3.8 第三方庫(kù): PyQt5 和 paramiko 本節(jié)需要安裝第三方庫(kù)PyQt5和paramiko,如果你并不熟悉第三方庫(kù)的安裝,你可以參考以下文章來(lái)學(xué)習(xí): Python第三方庫(kù)安裝

    2024年02月06日
    瀏覽(59)
  • <Python>PyQt5中UI界面和邏輯函數(shù)分開(kāi)寫(xiě)的一種方式

    <Python>PyQt5中UI界面和邏輯函數(shù)分開(kāi)寫(xiě)的一種方式

    前言 如果經(jīng)常使用PyQt5這種模塊來(lái)編寫(xiě)帶UI界面的程序,那么很自然的就會(huì)涉及到,一旦程序比較大,UI控件多的時(shí)候,需要將UI和邏輯程序分離,這樣方便管理,也方便維護(hù)。 配置: 平臺(tái):windows 工具:visual studio code 語(yǔ)言:python 庫(kù):PyQt5 本文將提供一個(gè)簡(jiǎn)單但可用的實(shí)例,

    2024年02月02日
    瀏覽(56)
  • 基于PyQt5的圖形化界面開(kāi)發(fā)——模擬醫(yī)院管理系統(tǒng)

    基于PyQt5的圖形化界面開(kāi)發(fā)——模擬醫(yī)院管理系統(tǒng)

    本節(jié)以醫(yī)院管理系統(tǒng)為例,使用PyQt5模擬醫(yī)院系統(tǒng)的功能。 本次用到的數(shù)據(jù)結(jié)構(gòu)思想為隊(duì)列,使用隊(duì)列能夠更真實(shí)的反映醫(yī)院排隊(duì)等候的情況(先掛號(hào)者先就診),事實(shí)上 操作系統(tǒng):Windows10 專業(yè)版 開(kāi)發(fā)環(huán)境:Pycahrm Comunity 2022.3 Python解釋器版本:Python3.8 第三方庫(kù):PyQt5 如果你

    2024年02月02日
    瀏覽(90)
  • 最新版本VSCode配置Python、PyQt5、QtDesigner環(huán)境并創(chuàng)建一個(gè)ui界面測(cè)試

    最新版本VSCode配置Python、PyQt5、QtDesigner環(huán)境并創(chuàng)建一個(gè)ui界面測(cè)試

    參考鏈接:最新版本VSCode配置Python、PyQt5、QtDesigner環(huán)境并創(chuàng)建一個(gè)ui界面測(cè)試 一、安裝Python3 PyQt5所支持的python版本是從3.5開(kāi)始的,因此安裝的Python3版本必須大于3.5。 我安裝的位置是C:PythonPython38。 參見(jiàn)真小白入門Pyhton的安裝 二、安裝PyQt5以及PyQt5-tools(這里面就有designer了

    2024年02月08日
    瀏覽(19)
  • QT--day2(信號(hào)與槽,多界面跳轉(zhuǎn))

    QT--day2(信號(hào)與槽,多界面跳轉(zhuǎn))

    ?第一個(gè)界面頭文件: 第一個(gè)界面源文件: 第二個(gè)界面頭文件: 第二個(gè)界面源文件: 測(cè)試文件: 效果: ? ?

    2024年02月15日
    瀏覽(23)
  • python中的yolov5結(jié)合PyQt5,使用QT designer設(shè)計(jì)界面沒(méi)正確啟動(dòng)的解決方法

    python中的yolov5結(jié)合PyQt5,使用QT designer設(shè)計(jì)界面沒(méi)正確啟動(dòng)的解決方法

    一、窗體設(shè)計(jì)test: 默認(rèn)你已經(jīng)設(shè)計(jì)好了窗體后: 這時(shí)你需要的是保存生成的untitle.ui到某個(gè)文件夾下,然后在命令行中獎(jiǎng).ui轉(zhuǎn)換為.py(,通過(guò)??pyqt5???提供的轉(zhuǎn)換工具,將??ui???文件轉(zhuǎn)換成??python??的代碼) 或者使用在PyCharm中安裝的工具: 然后你會(huì)看到mai

    2024年02月07日
    瀏覽(32)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包