ComboBox这个控件我常用于多文本的储存、调用,正如他的中文意思为:下拉列表框。
下拉列表框:字面意思就是一个多文本的列表框,今天来看下如何使用ComboBox这个控件。
一.环境配置
1.python 3.7.8
可直接进入官网下载安装:Download Python | Python.org
2.QT Designer
官方下载路径:Qt Designer Download for Windows and Mac
二.实例演示
1.直接用Qt Designer 来设计一个串口工具界面的布局,来讲解ComboBox的使用,界面如下:
该界面运用到了两个 ComboBox控件,那么我们如何去选取适配的端口号及波特率来完成串口的通信呢?一起先往下来看看ComboBox常用的属性和方法。
2.ComboBox常用的属性和方法
名称 | 描述 |
---|---|
addItem() | 增加单个选项内容 |
addItems() | 增加多个, 参数为列表 |
Clear() | 删除下拉列表中的所有选项 |
Count() | 返回下拉列表中的所有项目数量 |
currentText() | 返回当前选中项的文本内容 |
以上是ComboBox控件常用的一些属性及方法,了解完后,我们就可以通过实际的案例来更深入的去了解了。
3.currentText()函数返回文本内容
通过currentText()函数,来获取我们想要的内容,就能很轻松的完成我们串口的通信,来看下代码:
comport_ = re.split(r'([,:` -])',ui.comboBox.currentText())
ser = serial.Serial(comport_[0], ui.comboBox_3.currentText(),timeout=self.timex)
(1)先来看看第一行代码,我们这边用到了re库的split函数,至于这个split函数,作用就是分割我们的字符,然后以list的形式储存,具体用法可搜索,会有很多详细的讲解,为什么我们要用这个split函数来分割字符呢,首先来了解下,串口通信所需的几个关键参数为:
ser = serial.Serial('端口号', '波特率',timeout='超时等待S为单位')
我们直接读取内容为:COM3 (Prolific PL2303GS USB Serial COM Port (COM3))
但是我们参数1要获取的端口号只需要 COM3即可,所以这边用了re库来提取字符,还是回到我们的ComboBox控件来说。
(2)第二行代码的参数1、2即是ComboBox内容返回值,通过currentText()函数返回当前选中项的内容即可,我这边在设计界面时就加入了几个波特率的value,所以,直接选择即可。
4.其他函数及使用方法
这边我是通过 Qt Designer 来设计,所以很多新增选项等等函数这边就不需要手动去敲,新手的话还是建议手动去敲。
三.总结
ComboBox控件的简单案例即是如上所述啦,我这边主要是通过获取ComboBox控件的选项内容来完成项目中不同串口不同波特率的转换使用,可以自己来试一下吧。
@Neng