QT的常用控件說明

文章目錄

  • 基本的代碼的模板
  • Label控件
  • font字體相關
  • Button 控件
  • CheckBox 控件
  • Radio控件
  • ComboBox控件
  • LineEdit 控件

基本的代碼的模板

class MainWindow(QWidget):def __init__(self, *args, **kwargs):super().__init__(*args, **kwargs)  # 調用父類初始化方法# 聲明窗口實例# 代碼結束self.show()    # 顯示窗口if __name__ == '__main__':app = QApplication(sys.argv)  # 創建應用w = MainWindow()sys.exit(app.exec())

Label控件

  • 主要用于顯示靜態文本、圖像或富文本內容

在這里插入圖片描述

from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QHBoxLayout
from PyQt6.QtCore import Qt
import sysclass MainWindow(QWidget):def __init__(self, *args, **kwargs):super().__init__(*args, **kwargs)  # 調用父類初始化方法# 代碼開始self.setWindowTitle("Label控件")# 垂直布局layout = QHBoxLayout()label_1 = QLabel('第一個Label')label_1.setAlignment(Qt.AlignmentFlag.AlignCenter)font1 = label_1.font()font1.setFamily('Times New Roman')font1.setPointSize(30)font1.setUnderline(True)print(label_1.text())print(label_1.setText('第一個更改的Label'))# 添加字體label_1.setFont(font1)label_2 = QLabel('第二個Label')label_2.setAlignment(Qt.AlignmentFlag.AlignRight)layout.addWidget(label_1)layout.addWidget(label_2)self.setLayout(layout)# 代碼結束self.show()    # 顯示窗口if __name__ == '__main__':app = QApplication(sys.argv)  # 創建應用w = MainWindow()sys.exit(app.exec())

font字體相關

在這里插入圖片描述

import sys
from PyQt6.QtWidgets import QWidget, QLabel, QApplication, QVBoxLayout
from PyQt6.QtGui import QFontclass MainWindow(QWidget):def __init__(self, *args, **kwargs):super().__init__(*args, **kwargs)  # 調用父類初始化方法# 創建 QLabel 實例self.label = QLabel("Hello, Qt Font Example!")# 創建 QFont 實例并設置字體屬性font = QFont()font.setFamily("Arial")           # 設置字體族font.setPointSize(20)             # 設置字體大小(單位:點)font.setBold(True)                # 設置粗體font.setItalic(True)              # 設置斜體font.setUnderline(True)           # 設置下劃線# 將字體應用到 QLabelself.label.setFont(font)# 使用垂直布局管理器將 QLabel 添加到窗口中layout = QVBoxLayout()layout.addWidget(self.label)self.setLayout(layout)self.setWindowTitle("Qt Font Example")  # 設置窗口標題self.show()  # 顯示窗口if __name__ == '__main__':app = QApplication(sys.argv)  # 創建應用w = MainWindow()sys.exit(app.exec())  # 進入主事件循環

Button 控件

按鈕或命令按鈕是?戶命令程序執?某?操作時使?的按鈕,是 GUI 編程中最常?和最重要的?部件。
這里按鈕的狀態就是像是被按下,然后被釋放。
在這里插入圖片描述

from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QMessageBox
import sysclass MainWindow(QWidget):def __init__(self, *args, **kwargs):super().__init__(*args, **kwargs)  # 調用父類初始化方法# 代碼開始self.setWindowTitle("Button控件")self.resize(400,300)layout = QVBoxLayout()# 定義一個按鈕self.button1 = QPushButton('第一個按鈕')# 設置可以區分按下和未按下的狀態self.button1.setCheckable(True)button2 = QPushButton()# 設置不可點擊button2.setEnabled(False)# 設置名字button2.setText('第二個按鈕')# 設置信號和槽self.button1.clicked.connect(self.click_me)self.button1.pressed.connect(self.press_me)self.button1.released.connect(self.release_me)self.button1.toggled.connect(self.toggle_me)layout.addWidget(self.button1)layout.addWidget(button2)self.setLayout(layout)# 代碼結束self.show()    # 顯示窗口def click_me(self):print('點擊我了')def press_me(self):print('按下我了')def release_me(self):print('松開我了')def toggle_me(self):if self.button1.isChecked():self.button1.setStyleSheet("background-color: lightblue")else:self.button1.setStyleSheet("background-color: lightgrey")print('切換我了')if __name__ == '__main__':app = QApplication(sys.argv)  # 創建應用w = MainWindow()sys.exit(app.exec())

CheckBox 控件

QCheckBox ?部件提供了兩種狀態的按鈕:on(選中)/off(未選中)。這個?部件提供了?個帶有單個?本標簽的復選框。(QCheckBox 正式?檔)當選中或禁?復選框時,將觸發 stateChanged() 信號。當您希望在復選框的狀態發?變化時執?某些操作時,您可以將此信號連接到特定的插槽。您可以使? isChecked() ?法來檢查復選框是否被選中。布爾值將根據是否選中該框返回。
在這里插入圖片描述

from PyQt6.QtWidgets import ( QApplication, QWidget, QCheckBox, QPushButton, \QVBoxLayout, QMessageBox, QRadioButton, QLabel , QHBoxLayout)
import sysclass MainWindow(QWidget):def __init__(self, *args, **kwargs):super().__init__(*args, **kwargs)  # 調用父類初始化方法# 代碼開始self.setWindowTitle('checkbox控件')layout = QHBoxLayout()radiobutton = QRadioButton("Australia")radiobutton.setChecked(True)radiobutton.country = "Australia"radiobutton.toggled.connect(self.onClicked)layout.addWidget(radiobutton)radiobutton = QRadioButton("China")radiobutton.country = "China"radiobutton.toggled.connect(self.onClicked)layout.addWidget(radiobutton)radiobutton = QRadioButton("Japan")radiobutton.country = "Japan"radiobutton.toggled.connect(self.onClicked)layout.addWidget(radiobutton)self.setLayout(layout)# 代碼結束self.show()    # 顯示窗口def onClicked(self):radioButton = self.sender()if radioButton.isChecked():print("Country is %s" % (radioButton.country))if __name__ == '__main__':app = QApplication(sys.argv)  # 創建應用w = MainWindow()sys.exit(app.exec())

Radio控件

QRadioButton?部件提供了?個單選按鈕,?于在?組選項中選擇其中?個。同?組中的單選按鈕是互斥的。
在這里插入圖片描述

from PyQt6.QtWidgets import QApplication, QWidget, QHBoxLayout, QRadioButton, QLabel
import sysclass MainWindow(QWidget):def __init__(self, *args, **kwargs):super().__init__(*args, **kwargs)  # 調用父類初始化方法# 代碼開始self.setWindowTitle('radio單選按鈕')layout = QHBoxLayout()label = QLabel('選擇地區電影:')rd1 = QRadioButton('中國')rd1.setChecked(True)  # 默認被選中rd1.toggled.connect(self.choice)rd2 = QRadioButton('美國')rd2.toggled.connect(self.choice)rd3 = QRadioButton('其他')rd3.toggled.connect(self.choice)layout.addWidget(label)layout.addWidget(rd1)layout.addWidget(rd2)layout.addWidget(rd3)self.setLayout(layout)# 代碼結束self.show()    # 顯示窗口def choice(self):radio = self.sender()  # 發送的對象if radio.isChecked():print(radio.text())if __name__ == '__main__':app = QApplication(sys.argv)  # 創建應用w = MainWindow()sys.exit(app.exec())

ComboBox控件

QComboBox是?個下拉列表框,可以顯示當前選中的項?,并能通過下
拉列表選擇其他項?。
在這里插入圖片描述

from PyQt6.QtWidgets import QApplication, QWidget, QComboBox, QVBoxLayout
import sysclass MainWindow(QWidget):def __init__(self, *args, **kwargs):super().__init__(*args, **kwargs)  # 調用父類初始化方法# 代碼開始self.setWindowTitle('combobox控件')layout = QVBoxLayout()self.combo = QComboBox()self.combo.addItem('中英')self.combo.addItem('中日')self.combo.addItem('中韓')self.combo.addItem('中法')# 設置信號self.combo.currentTextChanged.connect(self.item_selected)layout.addWidget(self.combo)self.setLayout(layout)# 代碼結束self.show()    # 顯示窗口def item_selected(self):item = self.combo.currentText()print(item)if __name__ == '__main__':app = QApplication(sys.argv)  # 創建應用w = MainWindow()sys.exit(app.exec())

LineEdit 控件

QLineEdit 是?個?部件,它允許輸?和修改??字符串。
通過設置 echoMode(),可以將其?作“只寫”區域。這個特性在接收輸?
(?如密碼)時?常有?。
可以使? setEchoMode() ?法設置這些模式,其輸?和函數如下所示。
普通模式是最常?的,也是默認設置(例如
setEchoMode(QLineEdit.EchoMode.Normal) 或 setEchoMode(0))。

在這里插入圖片描述

from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QLineEdit
import sysclass MainWindow(QWidget):def __init__(self, *args, **kwargs):super().__init__(*args, **kwargs)  # 調用父類初始化方法# 代碼開始self.setWindowTitle('LineEdit控件')layout = QVBoxLayout()self.line1 = QLineEdit()self.line2 = QLineEdit()self.line2.setEchoMode(QLineEdit.EchoMode.Password)self.line3 = QLineEdit()self.line3.setEchoMode(QLineEdit.EchoMode.NoEcho)  # 不顯示,但已經輸入self.line4 = QLineEdit()self.line4.setEchoMode(QLineEdit.EchoMode.PasswordEchoOnEdit)  # 切換以后,以密碼顯示# 信號和槽self.line1.cursorPositionChanged.connect(self.cursorPositionChanged)self.line1.selectionChanged.connect(self.selectionChanged)self.line2.editingFinished.connect(self.editingFinished)self.line3.textChanged.connect(self.textChanged)self.line4.textEdited.connect(self.textEdited)layout.addWidget(self.line1)layout.addWidget(self.line2)layout.addWidget(self.line3)layout.addWidget(self.line4)self.setLayout(layout)# 代碼結束self.show()    # 顯示窗口def cursorPositionChanged(self):print('光標移動了')self.line3.setText('操作line3')self.line4.setText('操作line4')def editingFinished(self):print('輸出完成')def selectionChanged(self):print('更改選擇區域')def textChanged(self):print(self.line3.text())def textEdited(self):# 與testChanged區別# 使用setText(),textChanged會觸發,但是textEdited不會觸發print(self.line4.text())if __name__ == '__main__':app = QApplication(sys.argv)  # 創建應用w = MainWindow()sys.exit(app.exec())

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/94997.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/94997.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/94997.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

5Python異常處理與模塊導入全指南

目錄 什么是異常? 異常的捕獲方法: 為什么要捕獲異常? 捕獲異常的語法: 異常的else和finally語法: 什么是異常? 異常就是程序運行過程中出現了錯誤,也就是我們常說的出bug了-。- 異常的捕…

區塊鏈密碼學簡介

區塊鏈密碼學簡介 一、對稱密碼算法 概述 對稱密碼算法的主要特點是使用相同的密鑰進行加密和解密。這類算法根據其加密方式大致可以分為兩類:流密碼和分組密碼。區塊鏈技術主要采用分組密碼。流密碼以數據流的形式逐位或逐字節加密,而分組密碼則將數據分成固定大小的塊進行…

GridKernalGateway

GridKernalGateway 是 Apache Ignite 架構中一個關鍵的安全與狀態管理組件,它的作用是 “在公共 API 和內部內核(kernal)之間建立安全、可控的訪問通道”。 我們可以把它理解為一個 “門衛 狀態哨兵”,確保外部調用不會在 Ignite…

MySQL索引、B+樹相關知識總結

MySQL索引、B樹相關知識匯總一、有一個查詢需求,MySQL中有兩個表,一個表1000W數據,另一個表只有幾千數據,要做一個關聯查詢,如何優化?1、為關聯字段建立索引2、小表驅動大表二、b樹和b樹的區別1、更高的查詢…

Java學習進階 -- 泛型的繼承和通配符及綜合練習

首先&#xff0c;泛型不具備繼承性&#xff0c;但是數據具備繼承性1.核心概念解析泛型不具備繼承性即使類型A是類型B的子類&#xff0c;Generic<A>也不是Generic<B>的子類這是Java泛型的類型安全設計&#xff0c;防止不安全的類型轉換數據具備繼承性泛型容器中的元…

如何實現在多跳UDP傳輸場景,保證單文件和多文件完整傳輸的成功率?

如何實現在多跳UDP傳輸場景&#xff0c;保證單文件和多文件完整傳輸的成功率&#xff1f; 一、前言 UDP&#xff08;User Datagram Protocol&#xff09;是一個輕量、無連接的傳輸協議&#xff0c;廣泛用于低延遲、高吞吐的應用中&#xff0c;如視頻流、實時游戲等。然而&…

【Spring IoC 核心實現類詳解:DefaultListableBeanFactory】

Spring IoC 核心實現類詳解&#xff08;源碼原理&#xff09;作為 Spring 的靈魂&#xff0c;IoC 容器&#xff08;Inversion of Control&#xff09;是整個框架的核心。 那么 IoC 的“心臟”到底是哪個類&#xff1f;它是怎么管理和裝配 Bean 的&#xff1f;本文將從源碼層面深…

為什么開啟JWT全局認證后,CSRF失敗會消失?

這是因為 JWT認證與CSRF校驗的設計邏輯完全不同&#xff0c;當全局啟用JWT認證后&#xff0c;Django的CSRF校驗會被“繞過”或不再生效&#xff0c;具體原因如下&#xff1a; 核心原因&#xff1a;JWT認證不依賴Cookie&#xff0c;無需CSRF保護 1. CSRF的作用場景 CSRF攻擊的前…

寶龍地產債務化解解決方案二:基于資產代幣化與輕資產轉型的戰略重構

一、行業背景與代幣化創新趨勢1.1 房地產債務危機現狀寶龍地產&#xff08;01238.HK&#xff09;截至2024年中債務總額達584億元&#xff0c;其中50.7%為一年內到期債務&#xff0c;但現金儲備僅89.47億元&#xff0c;短期償債覆蓋率不足30%。2025年2月境外債務重組計劃因債權人…

深信服GO面試題及參考答案(下)

Kubernetes 與容器 Kubernetes(簡稱 K8s)是容器編排平臺,而容器是輕量級的虛擬化技術,兩者緊密關聯但定位不同,容器是 K8s 管理的核心對象,K8s 為容器提供了完整的生命周期管理、擴展和運維能力。 容器技術(如 Docker)通過 Linux 命名空間(Namespace)、控制組(CGro…

RAGFoundry:面向檢索增強生成的模塊化增強框架

本文由「大千AI助手」原創發布&#xff0c;專注用真話講AI&#xff0c;回歸技術本質。拒絕神話或妖魔化。搜索「大千AI助手」關注我&#xff0c;一起撕掉過度包裝&#xff0c;學習真實的AI技術&#xff01; 1. 背景與動機 大型語言模型&#xff08;LLMs&#xff09;存在 知識靜…

(第十期)HTML基礎教程:文檔類型聲明與字符編碼詳解

&#xff08;第十期&#xff09;HTML基礎教程&#xff1a;文檔類型聲明與字符編碼詳解 前言 在使用VS Code等現代編輯器生成HTML頁面時&#xff0c;你會發現自動生成的代碼中多了一些看似陌生但又非常重要的標簽。這些標簽不是多余的&#xff0c;而是現代Web開發的標準配置。…

OpenAPI(Swagger3)接口文檔自定義排序(萬能大法,支持任意swagger版本)

前置參考文檔 基于OpenAPI(Swagger3)使用AOP技術&#xff0c;進行日志記錄 使用SpringAOP的方式修改controller接口返回的數據 SpringBoot3集成OpenAPI3(解決Boot2升級Boot3) 總結一句話&#xff1a;既然沒辦法去通過各種方法或者官方的接口去修改接口順序&#xff0c;那我們就…

vue3上傳的文件在線查看

1、npm install vue-office/pdf vue-demi 安裝依賴2、npm install vue-office/excel vue-demi 安裝依賴3、npm install vue-office/docx vue-demi 安裝依賴4、編寫一個通用組件&#xff0c;現在只支持 .docx,.xlsx,.pdf 格式的文件&#xff0c;其他文件渲染不成功<temp…

深度學習中基于響應的模型知識蒸餾實現示例

在 https://blog.csdn.net/fengbingchun/article/details/149878692 中介紹了深度學習中的模型知識蒸餾&#xff0c;這里通過已訓練的DenseNet分類模型&#xff0c;基于響應的知識蒸餾實現通過教師模型生成學生模型&#xff1a; 1. 依賴的模塊如下所示&#xff1a; import arg…

【數據可視化-82】中國城市幸福指數可視化分析:Python + PyEcharts 打造炫酷城市幸福指數可視化大屏

&#x1f9d1; 博主簡介&#xff1a;曾任某智慧城市類企業算法總監&#xff0c;目前在美國市場的物流公司從事高級算法工程師一職&#xff0c;深耕人工智能領域&#xff0c;精通python數據挖掘、可視化、機器學習等&#xff0c;發表過AI相關的專利并多次在AI類比賽中獲獎。CSDN…

TikTok網頁版訪問障礙破解:IP限制到高效運營的全流程指南

在跨境電商與社媒運營的數字化浪潮中&#xff0c;TikTok網頁版因其多賬號管理便捷性、內容采集高效性等優勢&#xff0c;成為從業者的核心工具&#xff0c;然而“頁面空白”“地區不支持” 等訪問問題卻頻繁困擾用戶。一、TikTok網頁版的核心應用場景與技術特性&#xff08;一&…

spring的知識點:容器、AOP、事物

一、Spring 是什么? Spring 是一個開源的 Java 企業級應用框架,它的核心目標是簡化 Java 開發。 它不是單一的工具,而是一個 “生態系統”,包含了很多模塊(如 Spring Core、Spring Boot、Spring MVC 等),可以解決開發中的各種問題(如對象管理、Web 開發、事務控制等)…

HTML ISO-8859-1:深入解析字符編碼標準

HTML ISO-8859-1:深入解析字符編碼標準 引言 在HTML文檔中,字符編碼的選擇對于確保網頁內容的正確顯示至關重要。ISO-8859-1是一種廣泛使用的字符編碼標準,它定義了256個字符,覆蓋了大多數西歐語言。本文將深入探討HTML ISO-8859-1的原理、應用及其在現代網頁開發中的重要…

【計算機網絡 | 第4篇】分組交換

文章目錄前言&#x1f95d;電路交換&#x1f34b;電路交換技術的優缺點電路交換的資源分配機制報文交換&#x1f34b;報文交換技術的優缺點存儲轉發技術分組交換&#x1f426;?&#x1f525;分組交換的過程分組交換解決的關鍵問題傳輸過程的關鍵參數工作原理分組傳輸時延計算網…