目录
- 一、BUttons
- 1.1 包含
- 1.2 不同按钮的解释
- 二、具体应用
- 2.1 Push Button
- 2.2 Tool Button
- 2.3 Radio Button
- 2.4 Check Box
- 2.5 Command Link Button
- 2.6 Dialog Button Box
- 2.6.1 直接显示代码如下
- 2.6.2 可以修改ok,cancel 的内容
今天学习一下工具箱里面的Buttons!
一、BUttons
1.1 包含
具体包含如下图所示:
1.2 不同按钮的解释
名称 | 翻译 | PySide6对应的类 | 意义 |
---|---|---|---|
Push Button | 按钮 | QPushButton | 普通按钮,点击触发事件 |
Tool Button | 工具按钮 | QToolButton | 通常是带图标的按钮 |
Radio Button | 单选按钮 | QRadioButton | 一组选项中只能选择一个 |
Check Box | 复选框 | QCheckBox | 允许选择多个选项 |
Command Link Button | 命令链接按钮 | QCommandLinkButton | 带描述的链接按钮,通常用于对话框中,外观像链接 |
Dialog Button Box | 对话框按钮框 | QDialogButtonBo | 标准对话框按钮框,包含常见的按钮,如“确定”、“取消”等 |
二、具体应用
正如我前文所说,这个大家我建议结合Qt设计师进行学习!
这个里面我会简单放置一点信号/槽的内容!
2.1 Push Button
如图:
这个里面的参数都可以set设置,部分的解释如下:
名称 | 意思 |
---|---|
geomotyr | 相对坐标系(几何) |
sizePolicy | 控件大小策略 |
minimumSize | 最小宽度和最小高度 |
maximumSize | 最大宽度和最大高度(小tips:如果想固定窗口或控件大小,可将minimumSize和maximumSize设为一样的值) |
baseSize | 控件的基本大小(定义控件的初始大小, |
font | 字体 |
cursor | 指针 |
windowTitle | 窗口标题 |
windowIcon/icon | 窗口图标/控件图标 |
iconSize | 图标大小 |
tooITip | 提示信息 |
statusTip | 任务栏提示信息 |
text | 控件文本 |
shortcut | 快捷键 |
部分见代码:
import sys
from PySide6.QtWidgets import QMainWindow, QApplication, QWidget, QPushButton, QVBoxLayout
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 初始化窗口
self.setWindowTitle("这是Push Button按钮的学习!")
self.setGeometry(100, 100, 400, 300)
# 创建中心容器
central_widget = QWidget()
self.setCentralWidget(central_widget)
# 创建一个垂直布局,添加到中心容器
ver_layout = QVBoxLayout(central_widget)
# 垂直布局添加按钮
button_1 = QPushButton("Pushbutton")
ver_layout.addWidget(button_1)
if __name__ == "__main__":
# 创建Qapplication 实例, sys.argv 传递命令行参数
app = QApplication(sys.argv)
# 实例化主窗口
main_window = MainWindow()
# 显示主窗口
main_window.show()
# 启动Qapplication 事件循环, app.exec() 用于事件处理循环, sys.exit() 程序结束,正确释放计算机资源
sys.exit(app.exec())
2.2 Tool Button
定义:在图形用户界面(GUI)的开发中,Tool Button(工具按钮)是一种特殊类型的按钮。它通常用于提供快速访问常用工具或操作的功能,这些操作一般与应用程序的主要功能相关,并且用户可能会频繁使用。
用途举例:在一个图像编辑软件中,工具按钮可能包括 “裁剪”“旋转”“调整颜色” 等功能按钮;在文本编辑器中,可能是 “加粗”“斜体”“下划线” 等格式设置按钮。它们的存在是为了让用户能够方便、快捷地调用这些功能,而无需通过菜单等其他较复杂的方式来操作。
图标显示为主:工具按钮通常以图标显示为主,这样可以在有限的空间内提供更多的操作选项。例如,在大多数绘图软件的工具栏中,每个工具按钮都有一个清晰直观的图标,代表如铅笔、橡皮擦、形状绘制工具等功能,用户可以通过图标快速识别按钮的功能。当然,有些工具按钮也可以同时显示图标和少量文字来辅助说明,比如 “保存” 按钮可能会有一个磁盘图标和 “保存” 文字。
特点:尺寸相对较小:相比于普通的命令按钮,工具按钮一般尺寸较小,这是为了适应工具栏等空间有限的区域。它们通常排列在应用程序窗口的顶部(如在菜单栏下方的工具栏中)或侧边栏等位置,方便用户在操作过程中快速点击。
同理,需要修改哪些参数,大家自己参考属性栏,在此不再赘述!
import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QToolButton, QWidget
class Mainwindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("toolbutton学习!")
self.setGeometry(100, 100, 400, 300)
# 创建中央容器布局
central_widget = QWidget()
self.setCentralWidget(central_widget)
# 创建toolbutton
button_1 = QToolButton()
button_1.setText("ToolButton")
button_1.setParent(central_widget) # 指定父部件
if __name__ == "__main__":
app = QApplication(sys.argv)
mainwindow = Mainwindow()
mainwindow.show()
sys.exit(app.exec())
2.3 Radio Button
Radio Button(单选按钮)是图形用户界面(GUI)中的一种常见组件。它用于
在一组选项中只能选择一个选项的场景
。通常,多个单选按钮会组合在一起形成一个选项组
,当用户选择其中一个单选按钮时,同一组中的其他单选按钮会自动取消选择状态。
在一个用户偏好设置界面中,询问用户喜欢的颜色,选项
有 “红色”“蓝色”“绿色”,每个选项对应一个单选按钮
。用户只能选择一种颜色
,这种情况下使用单选按钮就很合适。在软件安装向导中,询问用户安装路径的磁盘分区(如 “C 盘”“D 盘”“E 盘” 等选项),也可以通过单选按钮来让用户进行唯一的选择。
圆形按钮与文本标签:单选按钮在外观上通常是一个
小圆形按钮
,旁边带有描述选项内容的文本标签。当选项被选中时,圆形按钮内部会出现一个小点(不同的 GUI 风格可能会有不同的选中标识,但一般是圆形填充状态),用于直观地显示该选项已被选中。例如,在常见的桌面应用程序中,如音乐播放器的播放模式选择(“单曲循环”“列表循环”“随机播放” 等选项),每个选项旁边的单选按钮在选中时会有明显的视觉变化。
成组显示:为了体现其单选的功能特性,单选按钮一般是成组出现的。这些按钮在逻辑上相互关联,形成一个选项集合。在界面设计中,它们通常会通过布局管理器(如QVBoxLayout垂直排列
或QHBoxLayout水平排列
)进行整齐的排列,方便用户查看和选择。
水平布局,垂直布局大家选择一个即可!(就是水平部分注释掉的内容)
import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QWidget, QRadioButton
from PySide6.QtWidgets import QVBoxLayout, QHBoxLayout
class Mainwindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("RatioButton 学习!")
self.setGeometry(100, 100, 500 ,400)
# 中央布局
central_widget = QWidget()
self.setCentralWidget(central_widget)
# # 创建水平布局
# hor_layout = QHBoxLayout()
# # 创建水平按钮,男,女
# radio_button_1 = QRadioButton("男")
# radio_button_2 = QRadioButton("女")
#
# # 添加到水平布局
# hor_layout.addWidget(radio_button_1)
# hor_layout.addWidget(radio_button_2)
#
# # 添加水平页面到中央布局容器
# central_widget.setLayout(hor_layout)
# 创建垂直布局
ver_layout = QVBoxLayout()
radio_button_3 = QRadioButton("男")
radio_button_4 = QRadioButton("女")
# 添加到垂直布局
ver_layout.addWidget(radio_button_3)
ver_layout.addWidget(radio_button_4)
# 添加垂直布局到中央布局容器
central_widget.setLayout(ver_layout)
if __name__ == "__main__":
app = QApplication(sys.argv)
mainwindow = Mainwindow()
mainwindow.show()
sys.exit(app.exec())
2.4 Check Box
CheckBox(复选框)是图形用户界面(GUI)中的一种常用组件。它允许用户在一组选项中选择零个、一个或多个选项,与单选按钮(Radio Button)只能选择一个选项形成对比。
软件安装界面,用户可以通过复选框选择安装哪些可选组件,如 “安装桌面快捷方式”“创建关联文件类型” 等;在邮件客户端的设置中,用户可以使用复选框选择接收哪些类型的通知,如 “新邮件提醒”“邮件发送成功提醒” 等。
方形框与文本标签:复选框在外观上通常是一个小方形框,旁边带有描述选项内容的文本标签。当选项被选中时,方形框内会出现一个勾选标记(如 “√”,不同的 GUI 风格可能会有不同的选中标识,但一般是某种形式的填充或勾选),用于直观地显示该选项已被选中。例如,在文档编辑软件的字体设置界面,用于选择字体样式的选项(如 “加粗”“斜体”“下划线” 等)旁边的复选框,选中后会出现相应的勾选标记。
独立或成组显示:复选框既可以独立使用,也可以成组出现。独立使用时,它用于控制一个单独的选项;成组出现时,用户可以根据自己的需求选择多个选项。在界面设计中,它们同样可以通过布局管理器(如QVBoxLayout垂直排列或QHBoxLayout水平排列)进行整齐的排列,方便用户查看和选择。
就是可以同时选中!!
import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QWidget, QCheckBox, QVBoxLayout
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("CheckBox学习!")
self.setGeometry(100, 100 ,500, 400)
# 创建中央容器
central_widget = QWidget()
self.setCentralWidget(central_widget)
# 创建垂直布局
ver_layout = QVBoxLayout()
# 创建复选框
check_box_1 = QCheckBox("男")
check_box_2 = QCheckBox("女")
# 添加复选框到布局
ver_layout.addWidget(check_box_1)
ver_layout.addWidget(check_box_2)
# 添加垂直布局到中央布局
central_widget.setLayout(ver_layout)
if __name__ == "__main__":
app = QApplication(sys.argv)
mainwindow = MainWindow()
mainwindow.show()
sys.exit(app.exec())
2.5 Command Link Button
Command Link Button(命令链接按钮)是一种用户界面组件,它结合了按钮和超链接的一些特点。外观上类似于一个带有文本描述的按钮,并且通常还包含一个小箭头符号,用于暗示用户点击后会导向某个相关的操作或者详细信息。
就长下面这样!
这种按钮主要用于在图形用户界面中提供一些重要的命令操作,这些操作可能会打开一个新的窗口、执行一个复杂的任务或者引导用户进入一个详细信息页面。例如,在操作系统的用户账户设置界面,“更改账户类型” 可能会以命令链接按钮的形式呈现,用户点击后会跳转到详细的账户类型更改界面;在软件的帮助系统中,“查看高级功能介绍” 命令链接按钮可以引导用户到关于高级功能的详细说明文档。
带有箭头的文本按钮:命令链接按钮通常有一个比较明显的文本标签,用于清晰地告知用户按钮的功能。同时,按钮的右侧或下方会有一个箭头符号(具体位置可能因操作系统或界面风格而有所不同),这个箭头给用户一种视觉提示,暗示点击按钮后会有进一步的动作,比如打开一个关联的窗口或者跳转到相关的内容页面。
视觉上的突出性:为了吸引用户的注意力并强调其可操作性,命令链接按钮一般会在界面中有一定的视觉突出效果。这可能通过颜色对比(如与背景颜色形成鲜明对比的前景色)、字体加粗或者周围的空白空间(使其在布局中相对独立)等来实现,让用户能够容易地将其与普通的文本或其他非交互式元素区分开来。
import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QWidget, QCommandLinkButton, QVBoxLayout
class MainWindo(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Commadn Link Buuton 按钮学习!")
self.setGeometry(100, 100, 500, 400)
# 创建中央布局
central_widget = QWidget()
self.setCentralWidget(central_widget)
# 创建垂直布局
var_layout = QVBoxLayout()
# 创建Commadn Link Buuton
commadn_link_buuton = QCommandLinkButton("点我啊,点我!", "好心人点我可以获得100W!当然是假的了!")
# 添加按钮到垂直布局
var_layout.addWidget(commadn_link_buuton)
# 添加垂直布局到中央布局
central_widget.setLayout(var_layout)
if __name__ == "__main__":
app = QApplication(sys.argv)
mainwindow = MainWindo()
mainwindow.show()
sys.exit(app.exec())
代码运行结果如下:
2.6 Dialog Button Box
定义:Dialog Button Box(对话框按钮盒)是图形用户界面(GUI)设计中的一个组件,用于在对话框或其他类似的弹出式窗口中统一管理和显示一组按钮。它提供了一种标准化的方式来组织诸如
“确定”“取消”“应用”“是”“否”
等功能按钮,这些按钮通常用于用户与对话框进行交互,以完成或取消某个操作、确认或拒绝某个设置等。
如下图
用途:在各种软件应用的对话框场景中广泛使用。例如,在文件保存对话框中,会有
“保存”“取消”
按钮;在消息提示对话框中,可能会有 “确定”“忽略”“详细信息” 等按钮。Dialog Button Box 确保这些按钮在对话框中的布局和行为符合用户界面设计的最佳实践,并且方便开发者进行管理,不用手动去逐个布局和处理这些按钮的位置、间距等问题。
外观特点
按钮组布局:它以
水平或垂直
的方式组织按钮,按钮之间的间距和排列方式通常遵循操作系统或所使用的 GUI 风格指南的标准。例如,在常见的桌面应用中,水平方向的对话框按钮盒里,按钮从左到右排列,并且间距均匀,符合用户对于按钮布局的常规预期。
自适应内容和样式: 根据添加到按钮盒中的按钮数量和类型,
Dialog Button Box 能够自适应调整大小和外观
。它也可以继承所在对话框或窗口的样式
,保持整体视觉风格的一致性。例如,如果对话框采用了某种特定的主题风格,如深色模式,对话框按钮盒中的按钮也会自动应用相应的颜色、字体等样式。
注意
里面的Ok,Cancel都是第一个字母大写!
Ok、Cancel
dartdialog_button = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
2.6.1 直接显示代码如下
import sys
from PySide6.QtWidgets import QApplication, QWidget, QMainWindow, QDialogButtonBox, QVBoxLayout
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Dialog 学习!")
self.setGeometry(100, 100, 500, 400)
# 创建中央布局
central_widget = QWidget()
self.setCentralWidget(central_widget)
# 创建垂直布局
var_layout = QVBoxLayout()
# 创建dialog按钮
dialog_button = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
# 添加到垂直布局
var_layout.addWidget(dialog_button)
# 添加到中央窗口
central_widget.setLayout(var_layout)
if __name__ == "__main__":
app = QApplication(sys.argv)
mainwindow = MainWindow()
mainwindow.show()
sys.exit(app.exec())
运行结果如下:
2.6.2 可以修改ok,cancel 的内容
import sys
from PySide6.QtWidgets import QApplication, QWidget, QMainWindow, QDialogButtonBox, QVBoxLayout
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Dialog 学习!")
self.setGeometry(100, 100, 500, 400)
# 创建中央布局
central_widget = QWidget()
self.setCentralWidget(central_widget)
# 创建垂直布局
var_layout = QVBoxLayout()
# 创建dialog按钮
dialog_button = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
# 获取ok,cancel对现象
ok_button = dialog_button.button(QDialogButtonBox.Ok)
ok_button.setText("是")
cancel_button = dialog_button.button(QDialogButtonBox.Cancel)
cancel_button.setText("否")
# 添加到垂直布局
var_layout.addWidget(dialog_button)
# 添加到中央窗口
central_widget.setLayout(var_layout)
if __name__ == "__main__":
app = QApplication(sys.argv)
mainwindow = MainWindow()
mainwindow.show()
sys.exit(app.exec())