起因

  1. combobox的使用和介绍
  2. 两个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的更多相关文章

  1. 用 eric6 与 PyQt5 实现python的极速GUI编程(系列02)---- 省市县(区)下拉列表多级联动

    [概览] 本文实现如下的程序: 主要步骤如下: 1.在eric6中新建项目,新建窗体 2.(自动打开)进入PyQt5 Desinger,编辑图形界面,保存 3.回到eric 6,对上一步得到的界面文件 ...

  2. PyQt5实现邮件合并功能(GUI)

    1. 实战Word批量 需要处理批量替换word的一些数据,数据源从Excel中来. Excel的百分数会变为数字,以及浮点数会多好多精度,为了原汁原味的数据,直接复制数据到文本文件.通过\t来分隔即 ...

  3. pyqt5 graphics view简单使用

    Graphics View提供了一个平面,用于管理和交互大量自定义的2D图形图元,以及一个用于可视化图元的视图窗口小部件,支持缩放和旋转. 该框架包括一个事件传播架构,允许场景中图元的精确双精度交互功 ...

  4. Pyqt5的事例讲解

    1.第一个gui程序 import sys from PyQt5.QtWidgets import QApplication from PyQt5.QtWidgets import QMainWind ...

  5. [Qt扒手2] PyQt5 路径绘画例子

    [说明] 此例扒自 Qt 官网,原例是 C++ 代码,我把它改写成了 Python + PyQt5 版本. 有了前一个例子的成功,这个例子改写的非常之快.记得第一个例子花了我几天的时间,而这个例子只花 ...

  6. python3+pyQt5+QtDesignner实现窗口化猜数字游戏

    描述:使用QtDesignner设计界面,pyQt5+python3实现主体方法制作的猜数字游戏. 游戏规则:先选择游戏等级:初级.中级.高级.魔鬼级,选择完游戏等级后点击“确定”,然后后台会自动生成 ...

  7. [ PyQt入门教程 ] PyQt5基本控件使用:单选按钮、复选框、下拉框

    本文主要介绍PyQt5界面最基本使用的单选按钮.复选框.下拉框三种控件的使用方法进行介绍. 1.RadioButton单选按钮/CheckBox复选框.需要知道如何判断单选按钮是否被选中. 2.Com ...

  8. pyqt5的QCompleter自动补全 使用模板

    相关说明 使用QCompleter类,就可以实现自动补全功能,效果图如下: 对应的代码很简单 def init_lineedit(self): # 增加自动补全 self.completer = QC ...

  9. PyQt5基础控件

    QLabel标签 功能:在界面上显示文字.图片.链接等 接口: 方法 描述 setText() 设置显示的内容 setAlignment() 设置文字对齐方式 setToolTip() 设置提示信息 ...

随机推荐

  1. 关于VsCode创建Vue基础项目的步骤以及相关问题

    项目创建步骤: 1.  全局安装vue-cli 安装命令: npm install -g vue-cli 在vscode上打开一个终端,然后输入此命令(下为截图): 2. 安装webpack,打包js ...

  2. ubuntu上pyecharts V1版本环境搭建

    1 背景 今天想用pyecharts画图,在新的环境下使用pip安装之后发现,导入pyecharts模块一直失败,报错如下. 图 1 导入pyecharts错误图 请注意:我这里使用的python版本 ...

  3. 【知识点】 gcc和g++的联系和区别

    目前(2020-09)GCC 编译器已经更新至 10.2版本,其功能也由最初仅能编译 C 语言,扩增至可以编译多种编程语言,其中就包括 C++ . 除此之外,当下的 GCC 编译器还支持编译 Go.O ...

  4. 使用python进行接口自动化测试,批量执行测试用例

    工作中,使用python的requests库进行接口自动化测试是一个比较不错的选择,今天就以某网站的免费接口为例,展示以get请求进行批量执行测试用例.话不多说直接开讲 分析一下接口信息, 请求地址: ...

  5. 使用Spark加载数据到SQL Server列存储表

    原文地址https://devblogs.microsoft.com/azure-sql/partitioning-on-spark-fast-loading-clustered-columnstor ...

  6. LeetCode-二叉搜索树的范围和

    二叉搜索树的范围和 LeetCode-938 首先需要仔细理解题目的意思:找出所有节点值在L和R之间的数的和. 这里采用递归来完成,主要需要注意二叉搜索树的性质. /** * 给定二叉搜索树的根结点 ...

  7. 2020年12月-第01阶段-前端基础-HTML常用标签

    1. HTML常用标签 首先 HTML和CSS是两种完全不同的语言,我们学的是结构,就只写HTML标签,认识标签就可以了. 不会再给结构标签指定样式了. HTML标签有很多,这里我们学习最为常用的,后 ...

  8. 一次VLAN标签引发的网络事件的处置

    一次VLAN标签引发的网络事件的处置 一.背景介绍 事件背景: HZ某分公司新装一套业务系统,通过一条专线和BJ总公司连通.分配给HZ公司的ip地址为:a.b.c.X,掩码24位,网关a.b.c.1. ...

  9. pgrep - 命令

    pgrep 命令格式:pgrep [选项] [模式] 选项 含义 -d <string> 指定输出分隔符 -l PID和进程名称 -a 列出PID和完整的命令行 -v 取反 -c 统计进程 ...

  10. Android学习之启动活动的最佳写法

    •开始热身 通过之前的学习,我们现在可以很容易的启动一个活动: 首先通过 Intent 构造出当前的 "意图",然后调用  startActivity()  方法将活动启动起来: ...