最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python深度學(xué)習(xí)實戰(zhàn)PyQt5基本控件使用解析

 更新時間:2021年10月18日 10:20:23   作者:youcans  
PyQt5 提供了豐富的輸入輸出控件。本文介紹通過 QtDesigner 工具欄創(chuàng)建常用的基本控件,包括各種按鈕控件、文本輸入控件和調(diào)節(jié)輸入控件

1. PyQt5 控件簡介

1.1 什么是控件

控件也稱控件對象,是 Qt用戶界面上最基本的組件類型,也是構(gòu)成用戶界面的基本結(jié)構(gòu)。用戶界面上顯示的所有內(nèi)容都是控件,例如按鈕、標簽、文本框,又如菜單欄、工具欄、狀態(tài)欄,甚至整個窗口本身也是控件。

QWidget 類是 PyQt5 的基類,也是所有控件的父類。所有的 Qt 控件都是 QWidget 類的子類,因此都繼承了 QWidget 類的特性,可以接收用戶的輸入事件,如鼠標和鍵盤輸入,并可以在用戶界面上顯示控件內(nèi)容,還可以存放其它控件。

1.2 編輯控件的屬性

控件具有屬性。不同類型的控件具有部分相同的屬性,也具有一些不同的專有屬性。

控件的相同屬性包括:名字,形狀,位置,大小,設(shè)置格式??丶膶S脤傩园ǎ赫故緝?nèi)容,接受輸入,用戶交互,日期,框架,等等。

所有的 Qt 控件都是 QWidget 類的子類,繼承了 QWidget 類的屬性。因此,我們學(xué)習(xí)控件可以按類進行學(xué)習(xí),先學(xué)習(xí)其繼承的父類的通用屬性,再學(xué)習(xí)控件所特有的專有屬性。對于控件的學(xué)習(xí)就是一個類的繼承關(guān)系的結(jié)構(gòu)圖。

我們以圖形界面 uiDemo5.ui 為例,介紹控件的通用屬性,并對控件的屬性進行編輯修改。

如前所述,QtDesigner 右側(cè)上方的 “對象查看器” 顯示了界面中的控件名稱和結(jié)構(gòu),下方的 “屬性編輯器” 顯示了選中的控件對象的各種屬性。在圖形界面中選擇某個控件,或者在 “對象查看器” 中選擇某個控件,在"屬性編輯器" 就會顯示該控件對象的屬性。

在這里插入圖片描述

不論是窗口對象 MainWindow、菜單欄 menubar、工具欄 toolBar,還是按鈕 pushButton、編輯行 lineEdit,都有一些相同的屬性,例如:

objectName:控件名,非常重要。準確的說是控件的 ID,Python 程序中訪問控件、控件交互都是使用 objectName。所有控件都必須具有唯一的 objectName,不能重名。不能使用中文字符。

geometry:控件的大小和位置。

  • 控件的寬度和高度可以修改,對于 MainWindow 來說控件的寬度/高度就是圖形界面程序窗口的寬度/高度。
  • 控件位置 (X, Y) 是控件在窗口控件的坐標值,MainWindow 的控件位置不能修改,其它控件的位置 (X, Y) 可以根據(jù)需要修改。
  • minimumSize、maximumSize 是主窗口大小拉伸后,控件對象的最小尺寸、最大尺寸。

font:控件顯示的字體選擇,包括字體、字號、風(fēng)格、效果等選項。

1.3 PyQt5 的控件類型

要了解 QtWidgets 類的子類,可以使用 “subclasses()” 將所有的子類打印出來,共有約 30個子類。

    import PyQt5
    print(QtWidgets.QWidget.__subclasses__())

這些控件類型,總體上可以分類如下:

輸入控件:

  • 按鈕:QPushButton(按鍵按鈕),QToolButton(工具按鈕),QRadioButton(單選框),QCheckButton(多選框),QCommandLinkButton(連接命令的按鈕)
  • 鍵盤輸入控件:QlineEdit(單行輸入),QTextEdit(多行輸入),QPlainTextEdit(普通多行輸入),QkeySequenceEdit(快捷鍵輸入)
  • 調(diào)節(jié)輸入控件:QAbstractSpinBox(步長調(diào)節(jié)輸入),QDateEdit(日期輸入),QTimeEdit(時間輸入),QDateTimeEdit(日期和時間輸入)
  • 數(shù)字調(diào)節(jié)框控件:QSpinBox(整型數(shù)字調(diào)節(jié)框),QDoubleSpinBox(浮點數(shù)字調(diào)節(jié)框)
  • 滑動輸入控件:QDial(旋轉(zhuǎn)拖滑輸入),QSlider(直線拖動輸入),QScrollBar(滾動條),QRubberBand(橡皮筋拖拽)
  • 下拉輸入控件:QComboBox(組合框下拉選項),QSlider(直線拖動輸入),QScrollBar(滾動條),QRubberBand(橡皮筋拖拽)
  • 對話框輸入控件:QDialog(對話框),QColorDialog(顏色對話框),QFileDialog(文件對話框),QFontDialog(字體對話框),QInputDialog(輸入對話框)
  • 日歷控件:QCalendarWidget(日期選擇部件)

顯示控件:

  • 內(nèi)容顯示控件:QLabel(顯示框),QLCDNumber(液晶顯示器),QProgressBar(進度條)
  • 對話框顯示控件:QMessageBox(信息提示框),QErrorMessage(錯誤提示框),QProgressDialog(進度提示框)

高級控件:

  • 容器控件:QToolBox,QDialogButtonBox,QGroupBox,QMdiSubWindow
  • 結(jié)構(gòu)控件:QMainWindow,QTabwidget,QStackedWidget,QSplitter,QDockWidget
  • 滾動控件:QTextBrowser,QScrollArea,QAbstractItemView,QMdiarea,QGraphicsView
  • 輔助控件:QFocusFrame,QSizeGrip,QDesktopWidget
  • 其它控件

在 QtDesigner 左側(cè)的 “WidgetBox” 工具欄中,將常用的控件按類別進行分組。用鼠標將工具欄中的控件圖標拖拽到 QtDesigner 中間的圖形界面編輯窗口,就在圖像界面創(chuàng)建了一個所選擇的控件。

在這里插入圖片描述

2. 按鈕控件

2.1 按鈕控件簡介

按鈕是最常用的控件類型。

在 QtDesigner 左側(cè)的 “WidgetBox” 工具欄中的"Buttons" 組,設(shè)有多種不同類型的按鈕控件:PushButton(按鍵按鈕),QToolButton(工具按鈕),QRadioButton(單選框),QCheckButton(多選框),QCommandLinkButton(連接命令的按鈕)。QDialogButtonBox(標準按鈕盒)提供一系列標準按鈕,相當于按鈕控件的組合。

按鈕控件的常用屬性:

text:顯示文本

icon:設(shè)置圖標

iconSize:圖標大小

shortcut:設(shè)置快捷鍵

checkable:設(shè)置是否自動切換按鈕

checked:設(shè)置默認選中狀態(tài)

autoRepeat:設(shè)置是否會在用戶按下時自動重復(fù)

autoExclusive:設(shè)置是否啟用自動排他性(設(shè)置多選框)

按鈕控件的信號觸發(fā)條件:

clicked():當按鈕被第一次按下然后釋放時發(fā)出信號

clicked(bool):當按鈕被第一次按下然后釋放時發(fā)出信號,并將當前狀態(tài)傳遞給外界

pressed():當鼠標光標在按鈕內(nèi)時,按下鼠標左鍵發(fā)出信號

released():當釋放鼠標左鍵時發(fā)出信號

toggled(bool):按鈕的狀態(tài)發(fā)生變化時發(fā)出信號,并將當前狀態(tài)傳遞給外界

按鈕控件常用的的模式/狀態(tài):

  • 可用或不可用,禁用時按鈕變灰
  • 標準按鈕,開關(guān)按鈕或菜單按鈕
  • 打開或關(guān)閉(僅用于開關(guān)按鈕)
  • 默認狀態(tài)或正常狀態(tài)
  • 是否自動重復(fù)
  • 是否處于按下狀態(tài)

用鼠標將工具欄中的按鈕控件拖拽到 QtDesigner 中間的圖形界面編輯窗口,就在圖像界面創(chuàng)建了一個按鈕控件。如下圖所示,我們在圖形界面 uiDemo5.ui 的左側(cè),創(chuàng)建了幾種不同的按鈕控件。

在這里插入圖片描述

2.2 按鍵按鈕(QPushButton)

QPushButton(按鍵按鈕)是最常用的按鈕,按下(或者單擊)按鈕可以執(zhí)行某個操作或回答問題,例如:確定,應(yīng)用,取消,關(guān)閉,是,否和幫助。

按鈕控件通常顯示一個文本標簽(text),可以為按鈕選擇一個圖標(icon),還可以選擇設(shè)置快捷鍵(shortcut)。

按鍵按鈕的上述屬性,都可以在 “屬性編輯器” 中相應(yīng)的屬性行中進行編輯修改。

當按鍵按鈕被鼠標或快捷鍵激活時,按鈕會發(fā)出 clicked() 信號,可以通過連接槽函數(shù)來觸發(fā)特定的操作。

2.3 其它按鈕

QToolButton(工具按鈕)常用于工具欄, 通常在創(chuàng)建 QAction 實例時創(chuàng)建。工具按鈕通常顯示一個圖標,可以快速訪問特定的命令或選項。

QRadioButton(單選框)是一個帶有文本標簽的單選框,可以打開(選中)或關(guān)閉(未選中)。單選框被選中或者清除時,都會發(fā)出 “toggled()” 信號,可以通過連接槽函數(shù)來觸發(fā)特定的操作。

QCheckButton(多選框)是一個帶有文本標簽的復(fù)選框,除了可以打開(選中)或關(guān)閉(未選中),還提供了半選狀態(tài)(可選項)。復(fù)選框被選中或者清除時,都會發(fā)射 “stateChanged()” 信號,可以通過連接槽函數(shù)來觸發(fā)特定的操作。

單選框定義了“多選一”的選擇,而復(fù)選框提供的是“多選多”的選擇。

QCommandLinkButton(連接命令的按鈕)外觀像一個扁平化的 QPushButton,并且自帶了一個向右的圖標,其用途類似于類似于單選按鈕,用于一組互斥選項之間進行選擇。

QDialogButtonBox(標準按鈕盒)提供一系列標準按鈕,可以水平或垂直布置,常用于對話框和消息框。 Qt 定義的標準按鈕包括:Yes、No、OK、Cancel、Ignore、Open、Save、Close、Apply、Help 等等,用戶可以自定義添加。

3. 輸入控件

3.1 輸入控件簡介

在 QtDesigner 左側(cè)的 “WidgetBox” 工具欄中的"Input Widget" 組,設(shè)有多種不同類型的輸入控件,例如:
文本輸入控件:QlineEdit(單行輸入)、QTextEdit(多行輸入)、QPlainTextEdit(普通多行輸入);
數(shù)字輸入控件:QSpinBox(整型數(shù)據(jù)輸入)、QDoubleSpinBox(浮點數(shù)據(jù)輸入);
調(diào)節(jié)輸入控件:QAbstractSpinBox(步長調(diào)節(jié)輸入)、QDateEdit(日期輸入)、QTimeEdit(時間輸入)、QDateTimeEdit(日期和時間輸入)。

用鼠標將工具欄中的輸入控件拖拽到 QtDesigner 中間的圖形界面編輯窗口,就在圖像界面創(chuàng)建了一個按鈕控件。如前圖所示,我們在圖形界面 uiDemo5.ui 的中間和右側(cè),創(chuàng)建了幾種不同的輸入控件。

3.2 文本輸入控件

單行文本輸入框(QlineEdit)

QLineEdit 控件是一個單行文本編輯器, 允許用戶輸入和編輯單行文本,并支持撤消、重做、剪切、粘貼及拖放功能。

QLineEdit 控件的屬性、信號、函數(shù)較多,并支持密碼輸入方式、文本框自動補全,在次不作詳細介紹,有興趣的讀者可以查看相關(guān)文檔和例程。

多行文本輸入框(QTextEdit)

QTextEdit 控件是一個 “所見即所得” 的多行富文本編輯器, 允許用戶輸入和編輯多行文本,并支持HTML4 標簽子集,可以加載純文本和富文本的文件,適用于編輯和瀏覽大型的富文本文件。

QTextEdit適用于段落和字符??梢燥@示圖像,列表和表格。如果文本太大而無法在文本編輯的視口中查看,則會出現(xiàn)滾動條。

TextEdit不僅可以顯示文本,還可以顯示HTML文檔

普通多行輸入(QPlainTextEdit)

QPlainTextEdit 控件是一個多行的純文本編輯器,允許用戶輸入和編輯多行純文本,不支持表格或嵌入幀。針對純文本的處理進行了優(yōu)化,可以處理更大的文檔和更快速的響應(yīng)。

3.3 調(diào)節(jié)輸入控件

步長調(diào)節(jié)輸入(QAbstractSpinBox)

QAbstractSpinBox 將所有步長調(diào)節(jié)器的通用的功能抽象出了一個父類,也可以直接實例化使用。QAbstractSpinBox包含了一個QLineEdit和兩個QPushbutton,數(shù)據(jù)的更改可以通過點擊按鈕或使用鍵盤輸入。

日期和時間輸入(QDateEdit/QTimeEdit/QDateTimeEdit)

QDateEdit 控件用于編輯日期,QTimeEdit 控件用于編輯時間,QDateTimeEdit同時編輯日期時間的控件。可以使用鍵盤上的上下鍵頭按鈕來增加或減少日期、時間。

整型數(shù)字調(diào)節(jié)框(QSpinBox)

QSpinBox 是一個計數(shù)器控件,允許用戶選擇一個整數(shù)通過上下按鍵遞增或者遞減,也可以直接輸入整數(shù)的數(shù)值。默認取值范圍為 0-99,每次調(diào)節(jié)的步長為 1。

浮點數(shù)字調(diào)節(jié)框(QDoubleSpinBox)

QDoubleSpinBox 是浮點數(shù)據(jù)計數(shù)器控件,用于處理浮點數(shù)值。默認精度為 2位小數(shù)。-

4. Python 應(yīng)用程序調(diào)用圖形界面

在 QtDesigner 將設(shè)計的圖形界面保存為 uiDemo5.ui,運行 PyUIC 將選中的 .ui 文件轉(zhuǎn)換為 .py 文件,在該路徑生成 uiDemo5.py 文件。

我們編寫一個主程序調(diào)用設(shè)計的圖形界面 uiDemo5.py,就可以完成一個圖形界面應(yīng)用程序。

# GUIdemo5.py
# Demo5 of GUI by PyQt5
# Copyright 2021 youcans, XUPT
# Crated:2021-10-12
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox
from uiDemo5 import Ui_MainWindow  # 導(dǎo)入 uiDemo5.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 界面類
    def trigger_actHelp(self):  # 動作 actHelp 觸發(fā)
        QMessageBox.about(self, "About",
                          """數(shù)字圖像處理工具箱 v1.0\nCopyright YouCans, XUPT 2021""")
        return
if __name__ == '__main__':
    app = QApplication(sys.argv)  # 在 QApplication 方法中使用,創(chuàng)建應(yīng)用程序?qū)ο?
    myWin = MyMainWindow()  # 實例化 MyMainWindow 類,創(chuàng)建主窗口
    myWin.show()  # 在桌面顯示控件 myWin
    sys.exit(app.exec_())  # 結(jié)束進程,退出程序

由于本文主要介紹常用的基本控件,在程序中尚未將控件的信號連接槽函數(shù),因此運行程序 uiDemo5.py 時,其中的一些按鈕控件在點擊后并沒有觸發(fā)操作。

在下一篇文章中,我們將介紹 PyQt5 中的頁面布局。

傳送門  Python深度學(xué)習(xí)實戰(zhàn)PyQt5布局管理項目示例詳解

以上就是Python深度學(xué)習(xí)實戰(zhàn)PyQt5基本控件使用解析的詳細內(nèi)容,更多關(guān)于PyQt5基本控件使用的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 基于Python的圖像數(shù)據(jù)增強Data Augmentation解析

    基于Python的圖像數(shù)據(jù)增強Data Augmentation解析

    這篇文章主要介紹了基于Python的圖像數(shù)據(jù)增強Data Augmentation解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • Python中使用Queue和Condition進行線程同步的方法

    Python中使用Queue和Condition進行線程同步的方法

    這篇文章主要介紹了Python中使用Queue模塊和Condition對象進行線程同步的方法,配合threading模塊下的線程編程進行操作的實例,需要的朋友可以參考下
    2016-01-01
  • Python的Flask站點中集成xhEditor文本編輯器的教程

    Python的Flask站點中集成xhEditor文本編輯器的教程

    xhEditor是基于jQuery的Web端文本編輯器,基本的圖片上傳等功能也都帶有,這里我們就來看一下Python的Flask站點中集成xhEditor文本編輯器的教程
    2016-06-06
  • python爬蟲之爬取筆趣閣小說

    python爬蟲之爬取筆趣閣小說

    這篇文章主要介紹了python爬蟲之爬取筆趣閣小說,文中有非常詳細的代碼示例,對正在學(xué)習(xí)python爬蟲的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-04-04
  • 使用Python和Go實現(xiàn)服務(wù)器發(fā)送事件(SSE)

    使用Python和Go實現(xiàn)服務(wù)器發(fā)送事件(SSE)

    在當今的交互式web應(yīng)用程序中,實時數(shù)據(jù)更新在增強用戶體驗方面起著至關(guān)重要的作用,在實時通信的各種技術(shù)中,SSE在眾多解決方案脫穎而出,本文給大家介紹了使用Python和Go實現(xiàn)服務(wù)器發(fā)送事件(SSE),需要的朋友可以參考下
    2024-11-11
  • Python MySQLdb 執(zhí)行sql語句時的參數(shù)傳遞方式

    Python MySQLdb 執(zhí)行sql語句時的參數(shù)傳遞方式

    這篇文章主要介紹了Python MySQLdb 執(zhí)行sql語句時的參數(shù)傳遞方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python虛擬環(huán)境conda的安裝使用教程

    Python虛擬環(huán)境conda的安裝使用教程

    在性能和資源占用方面,venv?通常更適合輕量級項目、純Python應(yīng)用以及對資源敏感的場景,其簡單快速的特點使得環(huán)境創(chuàng)建和管理更為高效,這篇文章主要介紹了Python虛擬環(huán)境conda的安裝使用教程,需要的朋友可以參考下
    2024-03-03
  • Python獲取、格式化當前時間日期的方法

    Python獲取、格式化當前時間日期的方法

    在本篇文章里小編給大家整理的是關(guān)于Python獲取、格式化當前時間日期的方法,對此有需要的朋友們可以學(xué)習(xí)參考下。
    2020-02-02
  • 深入理解python中sort()與sorted()的區(qū)別

    深入理解python中sort()與sorted()的區(qū)別

    Python list內(nèi)置sort()方法用來排序,也可以用python內(nèi)置的全局sorted()方法來對可迭代的序列排序生成新的序列。這篇文章主要介紹了python中sort()與sorted()的區(qū)別,需要的朋友可以參考下
    2018-08-08
  • python實現(xiàn)人工智能Ai摳圖功能

    python實現(xiàn)人工智能Ai摳圖功能

    這篇文章主要介紹了python實現(xiàn)人工智能Ai摳圖功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09

最新評論

合江县| 景泰县| 阿拉尔市| 汉寿县| 绥滨县| 定安县| 灵武市| 武鸣县| 巫溪县| 大渡口区| 武义县| 四子王旗| 嘉峪关市| 南涧| 西城区| 孝昌县| 珲春市| 轮台县| 富民县| 康乐县| 渑池县| 融水| 牡丹江市| 南投县| 荔浦县| 乐昌市| 岳池县| 普兰县| 襄垣县| 芜湖市| 兴宁市| 韩城市| 绥棱县| 县级市| 彰化县| 桂东县| 鹿邑县| 河东区| 河津市| 清丰县| 黄浦区|