当前位置: 首页 > 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())

相关文章:

  • 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-最小步数问题
  • 思想史家陈谷嘉逝世,曾为岳麓书院当代复兴奠定重要基础
  • 时隔3年俄乌直接谈判今日有望重启:谁参加,谈什么
  • 今年前4个月上海对拉美国家进出口总值增长2%
  • 美国和沙特签署上千亿美元军售协议
  • 京东一季度净利增长五成,营收增速创近三年新高,称外卖业务取得显著进展
  • 受美关税影响,本田预计新财年净利下降七成,并推迟加拿大建厂计划