QtWidgets 是 Qt 框架中的一个模块,提供了创建桌面应用程序的基础控件和窗口部件。这些控件包括按钮、标签、文本框等,帮助开发者快速构建用户界面。通过学习和使用这些基础组件,你可以轻松创建功能丰富且直观的应用程序界面。
下面我就来介绍这些基本的组件运用
常用组件
#常用部件
QWidget - 所有窗口部件的基类。
QMainWindow - 主窗口,支持菜单栏、工具栏和状态栏。
QDialog - 对话框,用于输入和确认。
QPushButton - 按钮。
QLabel - 标签,用于显示文本或图像。
QLineEdit - 单行文本框。
QTextEdit - 多行文本框。
QCheckBox - 复选框。
QRadioButton - 单选按钮。
QComboBox - 下拉框。
QListWidget - 列表视图。
QTableWidget - 表格视图。
QSlider - 滑块。
QSpinBox - 数字输入框。
QProgressBar - 进度条。
QTreeWidget - 树视图。
QMenuBar - 菜单栏。
QToolBar - 工具栏。
QStatusBar - 状态栏。
1.按键
import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
class QW(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(0, 0, 200, 200) #设置主窗口大小和位置
self.butt = QPushButton("确定",self) #创建一个按键
self.butt.setGeometry(0, 0, 100, 60) #设置按键的大小和位置
icon = QIcon("开关.png") # 设置图标路径
self.butt.setIcon(icon) #设置按键图标
self.butt.setIconSize(self.butt.size() * 0.6) #将图标大小设置为按钮大小的60%
#这个函数不细说,具体可以看博客Ai我看了,解释的也不是很清楚,这个函数可以设置组件外观
#设置按键的颜色和圆角效果
#掌握这个函数部件的外观设置基本上就大成了
#这里推荐篇博客https://blog.csdn.net/qq_42250189/article/details/105199339
self.butt.setStyleSheet("background-color:yellow;border-radius:20px;")
self.butt.clicked.connect(self.but_irq) #将按键的触发信号绑定到槽
def but_irq(self):
print("确定")
if __name__=="__main__":
app = QApplication(sys.argv)
w = QW()
w.show()
app.exec_()
这里创建了个按键并绑定信号与槽,按下的时候打印确定,按键的信号触发信号有很多种,我这里是单机,可以根据不同的情况使用,可以自己试试
clicked 单机
pressed - 当按钮被按下时发射。
released - 当按钮被释放时发射。
toggled - 当按钮的开关状态改变时发射(适用于切换按钮)。
doubleClicked - 当按钮被双击时发射(通常不适用于 QPushButton,但对于某些可点击的组件可能会使用)。
enterEvent - 当鼠标光标进入按钮区域时发射。
leaveEvent - 当鼠标光标离开按钮区域时发射。
运行效果
其他按键,如单选按钮,和按键用法大差不差这里也不多介绍
2.文本框
根据下面的文本框代码结合我们上面按键的代码就可以写一个按键按下在文本框里面显示确定,或者将单行文本框内容复制到多行文本框,如图
self.txt = QTextEdit(self) #创建多行文本框
self.txt.setGeometry(0,70,100,60) #设置大小位置
# 设置文本框的颜色和字体颜色
self.txt.setStyleSheet("background-color:rgb(0, 0, 0);color:rgb(255, 255, 255);")
self.txt1 = QLineEdit(self) # 单行文本框
self.txt1.setGeometry(110, 70, 100, 20) # 设置大小位置
# 设置文本框的颜色和字体颜色
self.txt1.setStyleSheet("background-color:rgb(0, 0, 0);color:rgb(255, 255, 255);")
self.txt.append("确定") #在文本框下一行添加确定
self.txt1.setText("确定") #设置文本框内容为确定
print(self.txt1.text()) #打印单行文本框内容
print(self.txt.toPlainText()) #打印多行文本框内容
其他文本,如标签,和文本框用法大差不差这里也不多介绍
太多了,讲不完,根本讲不完,最后我写了个实例给你们看看吧
import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
class QW(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(0, 0, 300,200) #设置主窗口大小和位置
self.txt = QTextEdit(self) #创建多行文本框
self.txt.setGeometry(0,70,100,60) #设置大小位置
# 设置文本框的颜色和字体颜色
self.txt.setStyleSheet("background-color:rgb(0, 0, 0);color:rgb(255, 255, 255);")
self.txt1 = QLineEdit(self) # 单行文本框
self.txt1.setGeometry(110, 70, 100, 20) # 设置大小位置
# 设置文本框的颜色和字体颜色
self.txt1.setStyleSheet("background-color:rgb(0, 0, 0);color:rgb(255, 255, 255);")
self.butt = QPushButton("我要发信息",self) #创建一个按键
self.butt.setGeometry(0, 0, 100, 60) #设置按键的大小和位置
icon = QIcon("开关.png") # 设置图标路径
self.butt.setIcon(icon) #设置按键图标
self.butt.setIconSize(self.butt.size() * 0.6) #将图标大小设置为按钮大小的60%
self.butt1 = QRadioButton("连发模式",self) #创建单选按键
self.butt1.setGeometry(120, 0, 100, 60)
self.combo = QComboBox(self) #创建下拉框
self.combo.setGeometry(200, 20, 100, 20)
self.combo.addItems(["1", "2", "3", "4", "5", "6", "7", "8", "9"]) #设置下拉框内容
#这个函数不细说,具体可以看博客Ai我看了,解释的也不是很清楚,这个函数可以设置组件外观
#设置按键的颜色和圆角效果
#掌握这个函数部件的外观设置基本上就大成了
#这里推荐篇博客https://blog.csdn.net/qq_42250189/article/details/105199339
self.butt.setStyleSheet("background-color:yellow;border-radius:20px;")
self.butt.clicked.connect(self.but_irq) #将按键的触发信号绑定到槽
def but_irq(self):
if self.butt1.isChecked():
for i in range(int(self.combo.currentText())):#获取当前下拉框选项转换成int
self.txt.append(self.txt1.text()) #将单行文本框内容添加到多行文本框
else:
self.txt.append(self.txt1.text())
if __name__=="__main__":
app = QApplication(sys.argv) # 创建 QApplication 实例
w = QW()
w.show() #显示窗口
app.exec_() #启动事件循环
运行效果
创作不易,点个赞在走吧!