当前位置: 首页 > news >正文

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.xdnf.cn/news/1276651.html

相关文章:

  • 【从源码角度深度理解 Python 的垃圾回收机制】:第1课引用计数篇
  • C++高频知识点(二十)
  • 电脑使用“碎片整理”程序的作用
  • Vue.js设计于实现 - 概览(二)
  • Vue 事件冒泡处理指南:从入门到精通
  • vue2升级vue3:单文件组件概述 及常用api
  • 基于VuePress2开发文档自部署及嵌入VUE项目
  • 【数据分析】循环移位岭回归分析:光遗传学冻结行为模式研究
  • 2025华数杯比赛还未完全结束!数模论文可以发表期刊会议
  • SAP学习笔记 - 开发57 - RAP开发 Managed App RAP action 之 Accept Travel 和 Reject Travel
  • special topic 8 (2) and topic 9 (1)
  • 一键复制产品信息到剪贴板
  • Kafka消费者相关原理
  • K8s DaemonSet 详解
  • es-drager-blog
  • 安全生产基础知识(一)
  • ThreadLocal的原理是什么,使用场景有哪些?
  • 状态机浅析
  • Linux操作系统从入门到实战(十八)在Linux里面怎么查看进程
  • Pico+unity VR入门开发超详细笔记2025
  • SpringBoot实现文件上传
  • 一些js数组去重的实现算法
  • 故障诊断 | VMD-CNN-BiLSTM西储大学轴承故障诊断附MATLAB代码
  • MyBatis进阶:动态SQL、多表查询、分页查询
  • openresty-lua-redis案例
  • Python 的列表 list 和元组 tuple 有啥本质区别?啥时候用谁更合适?
  • Ubuntu 安装 Kibana
  • 旅行者1号无线电工作频段
  • MyBatisPlus插件原理
  • MVCC和日志