前言✨
- “QtCore”模块主要包含了一些非GUI的基础功能,包含事件循环与Qt的信号机制。此外,还提供了跨平台的Unicode、线程、内存映射文件、共享内存、正则表达式和用户设置。
- “QtWigets”模块包含了大多数的控件类型。包含按钮、文本框、列表等常见控件
- ““uic”子模块能够将Qt的窗体文件转换为Python代码,能够即时读入窗体文件并且显示出来。
参考来自于[维基百科](https://zh.wikipedia.org/wiki/PyQt)
PyQt控件的使用⛏️
PyQt控件通常在QtWidgets模块下,通过PyQt文档 可以查询具体的用法。下面是我常用的一些PyQt控件的用法总结:
QFrame🖽🏷️📋
QFrame是一些有边框控件的基类,这些控件包括QLabel,QSrollArea,QListWidget,QTableWidget等等
下面是QFrame的一些方法,用于调整边框样式。
参考来自:Qt文档
| 方法 |
含义 |
| frameWidth |
返回边框的宽度 |
| setLineWidth(int) |
设置外边框的宽度 |
| setMidLineWidth(int) |
设置中间边框的宽度 |
| setFrameShape(QtWidgets.QFrame.Shape) |
设置边框的形状,常用的有QFrame.StyledPanel |
QLabel
标签控件,用于显示文字和图片。下面是它的一些属性和方法:
| 方法 |
含义 |
| setText(string) |
设置标签文字 |
| text() |
返回标签的文字 |
| pixmap() |
返回图片 |
| setAlignment(QtCore.Qt.AlignmentFlag) |
设置对齐方式 |
| setPicture(QtGui.QPicture) |
设置图片 |
列表框,是一个显示列表的控件。下面是它的一些方法🌰:
| 方法 |
含义 |
| count() |
返回列表中项目的数量 |
| currentRow() |
返回现在选择的行数(int类型) |
| currentItem() |
返回现在所选项目,QtWidgets.QListWidgetItem类型 |
| clear() |
清除列表框中所有的项目 |
| addItem(string) |
往列表框中添加项目 |
| addItems(list) |
往列表框中添加一些项目 |
| addItems(list) |
往列表框中添加一些项目 |
| setCurrentItem(item) |
把当前选择项设置为 |
| removeItemWidget(item) |
移除给出项 |
| setSortingEnabled(bool) |
设置是否允许列表进行排序 |
| sortItems(QtCore.Qt.SortOrder) |
有两个参数可选,Qt.AscendingOrder(从A到Z排序),Qt.DescendingOrder(从Z到A排序) |
下面是QListWidget提供的一些信号
使用方法🌰:
self.mySignal.connect(self.mySlot)
| 信号 |
含义 |
| currentItemChanged |
当选择项目改变时触发的信号 |
| itemClicked(item) |
当点击该项时触发信号 |
列表项目类,是QListWiget中的列表项。
下面是QListWidgetItem中的方法🌰:
参考来自:Qt文档
| 方法 |
含义 |
| text() |
得到该项目文字 |
| setText(string) |
设置项目的文本 |
| setTextAlignment(QtCore.Qt.AlignmentFlag) |
设置每一项列表的背景颜色 |
| setBackground(QtGui.QBrush) |
设置每一项列表的背景颜色 |
| setForeground(QtGui.QBrush) |
设置每一项列表的前景颜色 |
| setHidden(bool) |
设置项目是否隐藏 |
| setSelected(bool) |
设置当前状态为选中状态 |
| setSizeHint(QtCore.QSize) |
设置行高 |
| setToolTip(string) |
设置提示文字 |
滑块。给大块的控件提供可滑动视图。(有待研究)
下面是QListWidgetItem中的方法🌰:
参考来自:Qt文档
| 方法 |
含义 |
| setWidget(QWidget) |
设置需要进行滑动的控件,需要在调用这个函数之前给控件添加布局,否则控件会看不见。 |
| setWidgetResizable(True) |
设置控件是否可自适应大小,默认为False,有时候控件看不见也是因为这个选项没有设置为True。 |
QAbstractButton类为抽象类,不能实例化,是QPushButton,QToolButton,QRadioButton和QCheckBox等的基类。
下面的方法用于判断按钮的状态🌰:
参考来自:jia666666的博客
| 用于判断的状态 |
含义 |
| isChecked() |
是否勾选按钮 |
| isEnable() |
按钮是否可用 |
| isCheckable() |
按钮可否被勾选 |
下面是获取按钮属性或者对按钮进行控制的一些函数🌰:
| 方法 |
含义 |
| setCheckable(bool) |
设置按钮是否可以被勾选 |
| setEnabled(bool) |
设置按钮是否可用 |
| setIcon() |
设置按钮的图标 |
| icon() |
返回按钮的图标 |
| text() |
返回按钮的文字 |
下面是QAbstractButton提供的一些信号🌰:
self.mySignal.connect(self.mySlot)
| 发出的信号 |
含义 |
| Pressed |
按下按钮触发的信号 |
| Clicked |
点击按钮触发的信号 |
| Toggled |
按钮状态发生改变触发的信号 |
QPushButton继承QAbstractButton的方法,基本上使用的方法都是QAbstractButton存在的,它自己的方法没有什么常用到的,这里就不过多赘述了。
QCheckBox
复选框一般情况下有两种状态:勾选和不勾选,可以将复选框设置为三态模式,进行更多情况的使用,三态模式分别为:勾选、半勾选、不勾选。(PySide6.QtCore.Qt.CheckState)
参考来自:jia666666的博客
| 状态 |
值 |
含义 |
| Qt.Checked |
2 |
勾选状态 |
| Qt.PartiallyChecked |
1 |
半勾选状态 |
| Qt.Unchecked |
0 |
不勾选状态 |
| 方法 |
含义 |
| checkState() |
返回复选框的状态 |
| isTristate() |
判断复选框是否是三态模式 |
| setChecked(bool) |
表示复选框是否勾选 |
| setCheckState(PySide6.QtCore.Qt.CheckState) |
设置复选框的状态 |
| setTristate([bool]) |
设置复选框是否为三态模式 |
QRadioButton(单选框)继承QAbstractButton的方法,基本上使用的方法都是QAbstractButton存在的,唯一一点事QRaidoButton有组的特性,每一组RadioButton只能有一个按钮被激活。
| 方法 |
含义 |
| group() |
返回RadioButton所在的组 |
输入控件✒️
QLineEdit
该控件可以控制或者限制用户的输入行为。通过掩码属性(setInputMask)和验证器(setValidator)来达到。
下面是QLineEdit提供的一些方法🌰:
参考来自:Qt文档
| 方法 |
含义 |
| setText(string) |
设置输入框中的文本 |
| text() |
返回输入框中的文字 |
| setReadOnly(bool) |
设置文本是否为只读 |
| setClearButtonEnabled(bool) |
设置输入框是否有清空输入的按钮 |
| placeholderText() |
返回保持文本 |
| setPlaceholderText(string) |
设置保持文本 |
| alignment() |
返回文本对齐样式 |
| setAlignment(QtCore.Qt.AlignmentFlag) |
设置文本对齐样式 |
| setMaxLength(int) |
设置文本最大字符数 |
| setInputMask(inputMask) |
设置掩码 |
| setValidator(QtGui.QValidator) |
设置验证器 |
| setEchoMode(PySide6.QtWidgets.QLineEdit.EchoMode) |
输入字符的显示设置 |
常用信号:
| 信号 |
含义 |
| selectionChanged |
点击发生改变时触发信号 |
| textChanged |
修改文本内容时触发信号 |
| editingFinished |
文本编辑结束时触发信号 |
QComboBox
下拉列表框,在下拉列表中提供一些选项供给选择
下面是QComboBox提供的一些方法🌰:
参考来自:Qt文档
| 方法 |
含义 |
| addItem(string) |
往下拉列表中添加一个项目 |
| addItems(list) |
往下拉列表中添加一个列表 |
| clear() |
清除下拉列表中的全部内容 |
| setItemText(int,string) |
设置列表中给定索引项目的值 |
| count() |
返回下拉列表中项目的数量 |
| currentIndex() |
返回当前选项在下拉列表中的索引 |
| currentText() |
返回当前选项的文字 |
常用信号:
| 信号 |
含义 |
| Activated |
选中一个选项时触发的信号 |
| currentIndexChanged |
选中选项发生改变时触发的信号 |
| highlighted |
当高亮的项目发生改变时触发的信号 |
QAbstractSlider🎚️
可以滑动的控件,提供输入一个范围内的数的类,是QSlider、QScrollBar等的基类
下面是QAbstractSlider提供的一些方法🌰:
| 方法 |
含义 |
| value() |
获得滑块的数值 |
| setValue(int) |
设置滑块的数值 |
| setMinimum(int) |
设置滑块的最小值 |
| setMaximum(int) |
设置滑块的最大值 |
| setSingleStep(int) |
设置滑块步数 |
下面是QAbstractSlider的一些信号🌰:
| 信号 |
含义 |
| valueChanged |
滑块数值变化触发的信号 |
QSlider
滑块,滑动输入数值,下面是QSlider提供的一些方法🌰:
参考来自:Qt文档
| 方法 |
含义 |
| setTickPosition(QtWidgets.QSlider.TickPosition) |
绘制滑块的刻度线 |
| setTickInterval(int) |
设置刻度线的间隔距离 |
| QtWidgets.QSlider.TickPosition |
含义 |
| QSlider.NoTicks |
不绘制任何刻度线 |
| QSlider.TicksBothSides |
在滑块两侧绘制刻度线 |
| QSlider.TicksAbove |
在滑块上方绘制刻度线 |
| QSlider.TicksBelow |
在滑块下方绘制刻度线 |
| QSlider.TicksLeft |
在滑块左侧绘制刻度线 |
| QSlider.TicksRight |
在滑块右侧绘制刻度线 |
QPrograssBar
进度条,显示程序(一般用于循环程序)的进度。下面是QPrograssBar提供的一些方法🌰:
参考来自:Qt文档
| 方法 |
含义 |
| setRange(int,int) |
设置进度条的范围 |
| setValue(int) |
设置进度条的值 |
| setTextVisible(bool) |
设置进度条是否显示数值 |
| setInvertedAppearance |
设置进度条是否反向 |
| value() |
获得进度条的数值 |
| reset() |
重置进度条 |
更改PrograssBar进度条的颜色可以在stylesheet中使用qss更改,🌰:
1 2 3 4 5
| QWidgets.QPrograssBar.setStyleSheet("QProgressBar { border: 4px solid grey; " "border-radius: 10px; background-color: #FFFFFF; text-align: center;" "color:rgb(80,80,80);font: 15pt 'Comic Sans MS';}" "QProgressBar::chunk {background:QLinearGradient(x1:0,y1:0,x2:2,y2:0,stop:0 rgb(47,161,202)," "stop:1 rgb(43,220,112));}")
|
附:【对齐参数、掩码表格、验证器、EchoMode】
对齐参数
文本对齐样式类型
水平方向对齐:
| 参数 |
含义 |
| Qt.AlignLeft |
左对齐 |
| Qt.AlignRight |
右对齐 |
| Qt.AlignHCenter |
居中对齐 |
| Qt.AlignJustify |
分散对齐 |
竖直方向对齐:
| 参数 |
含义 |
| Qt.AlignTop |
向上对齐 |
| Qt.AlignBottom |
向下对齐 |
| Qt.AlignVCenter |
居中对齐 |
掩码表格:
| 掩码字符 |
含义 |
| A |
ASCII字母字符(A-Z、a-z) 是必须输入的 |
| a |
ASCII字母字符(A-Z、a-z) 是允许输入的,但不是必需输入的 |
| N |
ASCII字母字符(A-Z、a-z、0-9)是必须输入的 |
| n |
ASCII字母字符(A-Z、a-z、0-9)是允许输入的,但不是必需输入的 |
| X |
任何字符都是必须输入的 |
| x |
任何字符都是允许输入的,但不是必需输入的 |
| n |
ASCII字母字符(A-Z、a-z、0-9)是允许输入的,但不是必需输入的 |
| 9 |
ASCII数字字符(0-9)是必须输入的 |
| 0 |
ASCII数字字符(0-9)是允许输入的,但不是必需输入的 |
| D |
ASCII数字字符(1-9)是必须输入的 |
| d |
ASCII数字字符(1-9)是允许输入的,但不是必需输入的 |
| # |
ASCI数字字符或加减符号是允许输入的,但不是必需输入的 |
| H |
十六进制格式字符(A-F、a-f、0-9) 是必须输入的 |
| h |
十六进制格式字符(A-F、a-f、0-9) 是允许输入的,但不是必需输入的 |
| B |
二进制格式字符(0,1)是必须输入的 |
| b |
二进制格式字符(0,1)是允许输入的,但不是必需输入的 |
| > |
所有的字母字符都大写 |
| < |
所有的字母字符都小写 |
| ! |
关闭大小写转换 |
验证器:
| 验证器 |
含义 |
| QtGui.QIntValidator |
限制输入整数 |
| QtGui.QDoubleValidator |
限制输入浮点数 |
| QtGui.QRegexpValidator |
检查输入是否符合正则表达式 |
EchoMode:
| 显示状态 |
含义 |
| QLineEdit.Normal |
输入时显示字符 |
| QLineEdit.NoEcho |
啥都不显示 |
| QLineEdit.Password |
显示掩码字符 |
| QLineEdit.PasswordEchoOnEdit |
在输入时显示字符,输入完显示掩码 |