基本控件介绍
在PyQt中,控件是用户界面上的可见元素。控件可以包括按钮、标签、文本框、进度条等。每个控件都有自己的属性和方法,可以通过编程方式进行调整和操作。
以下是一些常用的PyQt控件:
- QLabel(标签):用于显示文本或图片的静态控件。
- QPushButton(按钮):用于触发特定动作或响应事件的按钮。
- QLineEdit(文本框):用户可以在其中输入或编辑文本。
- QRadioButton(单选按钮):用于从几个选项中选择一个。
- QCheckBox(复选框):用于从多个选项中进行多选。
- QSlider(滑块):用于调整值的控件,如音量或亮度。
- QProgressBar(进度条):用于显示任务的进度。
- QComboBox(组合框):用于从下拉菜单中选择一个选项。
- QTextEdit(文本编辑器):用于多行文本的输入和显示。
- QTableWidget(表格):以表格形式展示和编辑数据。
属性修改
在Qt中所有的控件其实都为QWidget的子类,对控件的一些修改,都可以在这里修改:
控件类型
控件类型,总体上可以分类如下:
输入控件:
- 按钮:QPushButton(按键按钮),QToolButton(工具按钮),QRadioButton(单选框),QCheckButton(多选框),QCommandLinkButton(连接命令的按钮)
- 键盘输入控件:QlineEdit(单行输入),QTextEdit(多行输入),QPlainTextEdit(普通多行输入),QkeySequenceEdit(快捷键输入)
- 调节输入控件:QAbstractSpinBox(步长调节输入),QDateEdit(日期输入),QTimeEdit(时间输入),QDateTimeEdit(日期和时间输入)
- 数字调节框控件:QSpinBox(整型数字调节框),QDoubleSpinBox(浮点数字调节框)
- 滑动输入控件:QDial(旋转拖滑输入),QSlider(直线拖动输入),QScrollBar(滚动条),QRubberBand(橡皮筋拖拽)
- 下拉输入控件:QComboBox(组合框下拉选项),QSlider(直线拖动输入),QScrollBar(滚动条),QRubberBand(橡皮筋拖拽)
- 对话框输入控件:QDialog(对话框),QColorDialog(颜色对话框),QFileDialog(文件对话框),QFontDialog(字体对话框),QInputDialog(输入对话框)
- 日历控件:QCalendarWidget(日期选择部件)
显示控件:
- 内容显示控件:QLabel(显示框),QLCDNumber(液晶显示器),QProgressBar(进度条)
- 对话框显示控件:QMessageBox(信息提示框),QErrorMessage(错误提示框),QProgressDialog(进度提示框)
高级控件:
- 容器控件:QToolBox,QDialogButtonBox,QGroupBox,QMdiSubWindow
- 结构控件:QMainWindow,QTabwidget,QStackedWidget,QSplitter,QDockWidget
- 滚动控件:QTextBrowser,QScrollArea,QAbstractItemView,QMdiarea,QGraphicsView
- 辅助控件:QFocusFrame,QSizeGrip,QDesktopWidget
按钮控件介绍
按钮是最常用的控件,这里我们来介绍一下Buttons下的控件:
PushButton(按键按钮),QToolButton(工具按钮),QRadioButton(单选框),QCheckButton(多选框),QCommandLinkButton(连接命令的按钮)。QDialogButtonBox(标准按钮盒)
按钮控件的属性:
上面有很多通过名字就能理解,这里我们补充一些,shortcut用于设置快捷键,checkable设置是否自动切换按钮,checked设置默认选中状态,autoRepeat设置是否会在用户按下时自动重复,autoExclusive设置是否启用自动排他性(设置多选框)。
按钮控件的信号触发条件:
- clicked():当按钮被第一次按下然后释放时发出信号
- clicked(bool):当按钮被第一次按下然后释放时发出信号,并将当前状态传递给外界
- pressed():当鼠标光标在按钮内时,按下鼠标左键发出信号
- released():当释放鼠标左键时发出信号
- toggled(bool):按钮的状态发生变化时发出信号,并将当前状态传递给外界
- 在Qt界面设计中,我们最常使用QPushButton,可以设置快捷键方便使用。
- QToolButton(工具按钮)通常用于工具栏,一般在创建QAction实例时一并创建。工具按钮常常显示一个图标,以便快速访问特定的命令或选项。
- QRadioButton(单选框),它是一个带有文本标签的单选按钮,可以被选中(打开)或者取消选中(关闭)。当单选框被选中或取消选中时,会触发“toggled()”信号,我们可以通过连接槽函数来执行相应的操作。单选框的作用是实现“多选一”的选择。
- QCheckBox(复选框)也是一个常用的按钮控件,带有文本标签,并可以被选中(打开)或取消选中(关闭),还提供了半选状态(可选项)。复选框被选中或取消选中时,会发出“stateChanged()”信号,我们可以通过连接槽函数来响应这些状态变化。与单选框不同,复选框提供了“多选多”的选择。
- QCommandLinkButton(连接命令的按钮),它的外观类似于扁平化的QPushButton,并且自带了一个向右的箭头图标。它与单选按钮类似,适用于一组互斥选项之间进行选择。
- QDialogButtonBox(标准按钮盒),它提供一系列标准按钮,可以水平或垂直布置,常用于对话框和消息框。Qt定义的标准按钮包括Yes、No、OK、Cancel、Ignore、Open、Save、Close、Apply、Help等等,当然用户也可以自定义添加其他按钮。
输入控件
左侧工具栏中的"Input Widget"下,可用于
文本输入的有QlineEdit(单行输入)、QTextEdit(多行输入)、QPlainTextEdit(普通多行输入);
数字输入控件有QSpinBox(整型数据输入)、QDoubleSpinBox(浮点数据输入);
调节输入控件:QAbstractSpinBox(步长调节输入)、QDateEdit(日期输入)、QTimeEdit(时间输入)、QDateTimeEdit(日期和时间输入)。
文本输入控件
- QLineEdit 控件是一个单行文本编辑器, 允许用户输入和编辑单行文本,并支持撤消、重做、剪切、粘贴及拖放功能。
- QTextEdit适用于段落和字符。可以显示图像,列表和表格。如果文本太大而无法在文本编辑的视口中查看,则会出现滚动条。TextEdit不仅可以显示文本,还可以显示HTML文档。
- QPlainTextEdit 控件是一个多行的纯文本编辑器,允许用户输入和编辑多行纯文本,不支持表格或嵌入帧。针对纯文本的处理进行了优化,可以处理更大的文档和更快速的响应。
调节输入控件
- QAbstractSpinBox 将所有步长调节器的通用的功能抽象出了一个父类,也可以直接实例化使用。QAbstractSpinBox包含了一个QLineEdit和两个QPushbutton,数据的更改可以通过点击按钮或使用键盘输入。
- QDateEdit 控件用于编辑日期,QTimeEdit 控件用于编辑时间,QDateTimeEdit同时编辑日期时间的控件。可以使用键盘上的上下键头按钮来增加或减少日期、时间。
- QSpinBox 是一个计数器控件,允许用户选择一个整数通过上下按键递增或者递减,也可以直接输入整数的数值。默认取值范围为 0-99,每次调节的步长为 1。
- QDoubleSpinBox 是浮点数据计数器控件,用于处理浮点数值。默认精度为 2位小数。