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() 设置提示信息 ...
随机推荐
- Python3.x 基础练习题100例(01-10)
练习01: 题目: 有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 分析: 可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. ...
- vue关于导航守卫的几种应用场景
beforeEach 该钩子函数主要用来做权限的管理认证 router.beforeEach((to, from, next) => { if (to.matched.some(record = ...
- k8s自定义controller设计与实现
k8s自定义controller设计与实现 创建CRD 登录可以执行kubectl命令的机器,创建student.yaml apiVersion: apiextensions.k8s.io/v1bet ...
- C# smtp邮件发送
第一种方式发送邮件,不读取配置文件发送邮件,(本地测试可以,但是服务器上不行) /// <summary> /// 发送邮件 /// </summary> /// <pa ...
- 使用python模块plotdigitizer抠取论文图片中的数据
技术背景 对于各行各业的研究人员来说,经常会面临这样的一个问题:有一篇不错的文章里面有很好的数据,但是这个数据在文章中仅以图片的形式出现.而假如我们希望可以从该图片中提取出数据,这样就可以用我们自己的 ...
- CVE-2020-1938 -Tomcat-AJP任意文件读取/包含
为什么这个漏洞被称作 Ghostcat(幽灵猫)? 这个漏洞影响全版本默认配置下的 Tomcat(在我们发现此漏洞的时候,确认其影响 Tomcat 9/8/7/6 全版本,而年代过于久远的更早的版本未 ...
- FreeBSD 入门 哲学与玄学
『哲学与玄学』 FreeBSD 是一种 UNIX 哲学(如模块化,一切皆文件等,见< UNIX 编程艺术>❩的发展,也是学院派的代表作品.她是一套工具集,她存在目的是为了让人们更好的生活. ...
- Spark SQL中Not in Subquery为何低效以及如何规避
首先看个Not in Subquery的SQL: // test_partition1 和 test_partition2为Hive外部分区表 select * from test_partition ...
- innerHTML,innerText
文本替换 <p id="p1">Hello World!</p><div>神经</div><h3 class="hh ...
- 如何学习python爬虫
分享网易云课堂上一个不错的视频教学:http://study.163.com/course/courseMain.htm?courseId=1003285002