当前位置: 首页 > news >正文

PyQt5基本窗口控件(QComboBox(下拉列表框))

QComboBox(下拉列表框)

QComboBox是一个集按钮和下拉选项于一体的控件,也被称为下拉列表框。
QComboBox类中的常用方法如表4-6所示。

方法描述
addItem()添加一个下拉选项
addItems()从列表中添加下拉选项
Clear()删除下拉选项集合中的所有选
count()返回下拉选项集合中的数目
currentText()返回选中选项的立本
itemText(i)获取索引为i的item的选项文本
currentIndex()返回选中项的索引
setItemText(int index,text)改变序号为index项的文本

QComboBox类中的常用信号如表4-17所示。

信号含义
Activated当用户选中一个下拉选项时发射该信号
currentIndexChanged当下拉选项的索引发生改变时发射该信号
highlighted当选中一个己经选中的下拉选项时,发射该信号

QComboBox按钮的使用

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *class ComboxDemo(QWidget):def __init__(self,parent=None):super(ComboxDemo,self).__init__(parent)self.setWindowTitle("combox例子")self.resize(300,90)layout=QVBoxLayout()self.lbl=QLabel("")self.cb=QComboBox()self.cb.addItem("C")self.cb.addItem("C++")self.cb.addItems(["Java", "C#", "Python"])self.cb.currentIndexChanged.connect(self.selectionchange)layout.addWidget(self.cb)layout.addWidget(self.lbl)self.setLayout(layout)def selectionchange(self,i):self.lbl.setText(self.cb.currentText())self.lbl.adjustSize()print("Itemsin the list are.")for count in range(self.cb.count()):print('item'+str(count)+'='+self.cb.ItemText(count))print("Currentindex",i,"selection changed",self.cb.currentText())if __name__=='__main__':app=QApplication(sys.argv)comboDemo=ComboxDemo()comboDemo.show()sys.exit(app.exec_())

运行结果

image

代码分析:
在这个例子中显示了一个下拉列表框和一个标签,其中下拉列表框中有5个选
项,既可以使用QComboBox的addltem()方法添加单个选项,也可以使用addltems()
方法添加多个选项:标签显示的是从下拉列表框中选择的选项,

 self.cb=QComboBox()self.cb.addItem("C")self.cb.addItem("C++")self.cb.addItems(["Java", "C#", "Python"])

当下拉列表框中的选项发生改变时将发射currentlndexChanged信号,连接到自
定义的槽函数selectionchange()。

self.cb.currentIndexChanged.connect(self.selectionchange)

在方法中,当选中下拉列表框中的一个选项时,将把该选项的文本设置为标签
的文本,并调整标签的大小。

 def selectionchange(self,i):self.lbl.setText(self.cb.currentText())
http://www.dtcms.com/a/189877.html

相关文章:

  • Webpack其他插件
  • 【计算机网络】TLS中的对称加密和非对称加密的应用,应对第三方抓包的双向https认证
  • 数据库系统概论|第七章:数据库设计—课程笔记
  • 计算机网络-MPLS VPN基础概念
  • 如何设置FFmpeg实现对高分辨率视频进行转码
  • 高速数字测试利器,新款是德科技UXR0504B示波器
  • 多模态和多智能体系统与理性的结合综述研究
  • 2天长沙旅游规划
  • MFC 调用海康相机进行软触发
  • 【ROS】将Qt的Pro工程转换到ROS2的colcon
  • 【springcloud学习(dalston.sr1)】使用Feign实现接口调用(八)
  • spark小任务
  • AI产品上市前的“安全通行证“
  • 高防ip支持哪些网络协议
  • HDD 安全擦除:何时以及如何在 Windows PC 上安全擦除硬盘
  • vue3:十三、分类管理-表格--slot插槽详细说明---表格内拼接字段、tag标签
  • 微信小程序学习之搜索框
  • 【工具变量】各省市场化指数-杨兴权版共三个方法(1997-2023年)
  • C++类和对象之相关特性
  • bfs-最小步数问题
  • Leetcode数组day1
  • SpringAI
  • HandlerInterceptor介绍-笔记
  • NC65开发环境(eclipse启动)在企业报表中的报表数据中心里计算某张报表时,一直计算不出数据的解决办法。
  • C++类和对象练习:Date类实现日期的差,比较日期的大小,日期的前置后置++,--,输入输出Date类,对默认函数的练习。
  • uniapp使用全局组件,
  • Django + Celery 打造企业级大模型异步任务管理平台 —— 从需求到完整实践(含全模板源码)
  • VCS X-PROP建模以及在方针中的应用
  • 【MySQL】变更缓冲区:作用、主要配置以及如何查看
  • 记录: Windows下远程Liunx 系统xrdp 用到的一些小问题(免费踩坑 记录)