Pyqt5 combobox
起因
- combobox的使用和介绍
- 两个
combobox联动

开始
介绍
Combobox是Qt中的下拉复选框,
注意:在添加列表选项时,可以一个个添加,也可以直接使用列表一次性添加多个;
添加多个后 会默认显示索引为0的元素。

常用方法
- 控件常用函数:
| 函数 | 意义 |
|---|---|
| .addItem(string) | #添加字符串项到Item |
| .addItems(list) | #添加列表或元组元素到Item |
| .clear() | #清除所有Item |
| .clearEditText() | #清除编辑框内容 |
| .count() | #返回Item数目 |
| .currentIndex() | #返回当前选择索引,从0开始 |
| .currentText() | #返回当前选择内容 |
| .insertItem(index,string) | #插入字符串项到Item项index后 |
| .insertItems(index,list) | #插入列表或元组元素到Item项index后 |
| .insertSeparator(index) | #插入分隔符到Item项index后 |
| .itemText(index) | #返回Item项index的内容 |
| .removeItem(index) | #删除Item项index |
| .setCurrentIndex(index) | #设置Item项index为当前选择 |
| .setEditable(True) | #设置选框可编辑 |
| .setEditText(string) | #设置编辑框内容 |
| .setItemText(index,string) | #设置Item项index内容为字符串值 |
- 信号:

案例
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class QComboBoxDemo(QWidget):
def __init__(self):
super(QComboBoxDemo, self).__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('下拉列表控件演示')
self.resize(300, 100)
layout = QVBoxLayout() # 设置垂直布局
self.label = QLabel('选择种类') # label 1
self.label1 = QLabel("选择需求") # label 2
self.cb = QComboBox() # 创建下拉列表对象1
self.cb1 = QComboBox() # 创建下拉列表对象2
self.cb.addItem('坚果') # 添加单个控件
self.cb.addItem('小球')
self.cb.addItems(['螺母', '未知']) # 一次添加多个控件
# 当下拉复选框内容被选中时 发送信号
self.cb.currentIndexChanged.connect(self.selectionChange) # 获取当前选中元素的索引 并按照指定格式输出
self.cb.activated[str].connect(self.change) # 获取当前选中元素的索引
# 把label和combobox 添加进 垂直布局
layout.addWidget(self.label)
layout.addWidget(self.cb)
layout.addWidget(self.label1)
layout.addWidget(self.cb1)
self.setLayout(layout)
def selectionChange(self, i): # 默认传递两个参数 第二个当前选择的索引
self.label.setText(self.cb.currentText()) # currentText 返回当前下拉复选框选择的内容
self.label.adjustSize()
for count in range(self.cb.count()): # 获取所有的元素
print('item' + str(count) + '=' + self.cb.itemText(count))
print('current index', i, 'selection changed', self.cb.currentText())
def change(self, s):
self.cb1.clear()
if s == "坚果":
self.cb1.addItem('夏威夷果') # 添加单个控件
elif s == "小球":
self.cb1.addItem('红球')
self.cb1.addItems(['绿球', '蓝球']) # 一次添加多个控件
elif s == "螺母":
self.cb1.addItem("M12")
else:
self.cb1.addItem("请重选")
if __name__ == '__main__':
app = QApplication(sys.argv)
main = QComboBoxDemo()
main.show()
sys.exit(app.exec_())
参考:
https://baijiahao.baidu.com/s?id=1663472192312252851&wfr=spider&for=pc
Pyqt5 combobox的更多相关文章
- 用 eric6 与 PyQt5 实现python的极速GUI编程(系列02)---- 省市县(区)下拉列表多级联动
[概览] 本文实现如下的程序: 主要步骤如下: 1.在eric6中新建项目,新建窗体 2.(自动打开)进入PyQt5 Desinger,编辑图形界面,保存 3.回到eric 6,对上一步得到的界面文件 ...
- PyQt5实现邮件合并功能(GUI)
1. 实战Word批量 需要处理批量替换word的一些数据,数据源从Excel中来. Excel的百分数会变为数字,以及浮点数会多好多精度,为了原汁原味的数据,直接复制数据到文本文件.通过\t来分隔即 ...
- pyqt5 graphics view简单使用
Graphics View提供了一个平面,用于管理和交互大量自定义的2D图形图元,以及一个用于可视化图元的视图窗口小部件,支持缩放和旋转. 该框架包括一个事件传播架构,允许场景中图元的精确双精度交互功 ...
- Pyqt5的事例讲解
1.第一个gui程序 import sys from PyQt5.QtWidgets import QApplication from PyQt5.QtWidgets import QMainWind ...
- [Qt扒手2] PyQt5 路径绘画例子
[说明] 此例扒自 Qt 官网,原例是 C++ 代码,我把它改写成了 Python + PyQt5 版本. 有了前一个例子的成功,这个例子改写的非常之快.记得第一个例子花了我几天的时间,而这个例子只花 ...
- python3+pyQt5+QtDesignner实现窗口化猜数字游戏
描述:使用QtDesignner设计界面,pyQt5+python3实现主体方法制作的猜数字游戏. 游戏规则:先选择游戏等级:初级.中级.高级.魔鬼级,选择完游戏等级后点击“确定”,然后后台会自动生成 ...
- [ PyQt入门教程 ] PyQt5基本控件使用:单选按钮、复选框、下拉框
本文主要介绍PyQt5界面最基本使用的单选按钮.复选框.下拉框三种控件的使用方法进行介绍. 1.RadioButton单选按钮/CheckBox复选框.需要知道如何判断单选按钮是否被选中. 2.Com ...
- pyqt5的QCompleter自动补全 使用模板
相关说明 使用QCompleter类,就可以实现自动补全功能,效果图如下: 对应的代码很简单 def init_lineedit(self): # 增加自动补全 self.completer = QC ...
- PyQt5基础控件
QLabel标签 功能:在界面上显示文字.图片.链接等 接口: 方法 描述 setText() 设置显示的内容 setAlignment() 设置文字对齐方式 setToolTip() 设置提示信息 ...
随机推荐
- Go语言实现布谷鸟过滤器
转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/453 介绍 在我们工作中,如果遇到如网页 URL 去重.垃圾邮件识别 ...
- hiho一下 第195周 奖券兑换[C solution][Accepted]
时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi在游乐园中获得了M张奖券,这些奖券可以用来兑换奖品. 可供兑换的奖品一共有N件.第i件奖品需要Wi张奖券才能兑换到, ...
- Docker系列——InfluxDB+Grafana+Jmeter性能监控平台搭建(一)
在做性能测试的时候,重点关注点是各项性能指标,用Jmeter工具,查看指标数据,就是借助于聚合报告,但查看时也并不方便.那如何能更直观的查看各项数据呢?可以通过InfluxDB+Grafana+Jme ...
- mongoDB服务器连接不上Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException:
一大早打开node项目就报错,终端报 UnhandledPromiseRejectionWarning: MongooseServerSelectionError: connect ECONNREFU ...
- java 给时间增加时间得到一个新的时间(日期)
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd") LocalDate expirationDate String exp ...
- 选择 FreeBSD 而不是 Linux 的技术性原因2
ZFSZFS 文件系统是 FreeBSD 上的一等公民.这不仅意味着可以在 ZFS 上安装根目录,安装程序也支持这一点,而且还意味着很多基础系统工具都已经紧密地集成或构建了对 ZFS 的支持.在 Fr ...
- golang float32/64转string
v := 3.1415926535 s1 := strconv.FormatFloat(v, 'E', -1, 32)//float32s2 := strconv.FormatFloat(v, 'E' ...
- 再探循环依赖 → Spring 是如何判定原型循环依赖和构造方法循环依赖的?
开心一刻 一天,侄子和我哥聊天,我坐在旁边听着 侄子:爸爸,你爱我妈妈吗? 哥:这话说的,不爱能有你吗? 侄子:确定有我不是因为荷尔蒙吗? 哥:因为什么荷尔蒙,因为爱情! 侄子:那我妈花点钱,你咋老说 ...
- Python中类的特殊属性和魔术方法
1.属性 属性 含义 __name__ 类.函数.方法等的名字 __dir__ __module__ 类定义所在的模块名 __class__ 对象或类所属的类 只是返回基类 __bases__ ...
- C# 通过ServiceStack 操作Redis——List类型的使用及示例
Redis list的实现为一个双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销, /// <summary> /// Redis list的实现为一个双向链表 ...