第15.41节、PyQt(Python+Qt)入门学习:输入部件QComboBox组合框功能详解

1、概述

Designer中输入工具部件中的Combo Box组合框与其余可视化工具组合框功能相同,组合了按钮和弹出列表的功能,显示当前项并能够弹出可选择项的列表。组合框能够编辑,容许用户修改列表中的每一个项。Combo Box组合框对应PyQt中的类QComboBox。html

2、组合框项的属性

在Designer中,组合框可设置的项属性包括以下:
在这里插入图片描述
各属性简介以下python

  • editable:editable用于控制用户是否可对组合框进行编辑,使用setEditable()设置是否容许组合框进行编辑,其是否可编辑状态经过isEditable()方法访问
  • currentText:currentText保存当前文本,若是组合框是可编辑的,则当前文本是组合框编辑框显示的值,若是是不可编辑的,且组合框为空或未设置当前项,则为当前项的值或空字符串。使用方法currentText()获取当前文本,使用方法setCurrentText()设置当前文本,在设置当前文本时,若是组合框是可编辑的,setCurrentText()只是调用setEditText()方法设置编辑框内的文本值,若是是不可编辑的切列表中有匹配的文本,则currentIndex设置为对应项的索引
  • maxVisibleItems:maxVisibleItems用于控制组合框内最多可见的项数,经过方法maxVisibleItems()和setMaxVisibleItems()来访问
  • maxCount:maxCount保存组合框弹出列表中最大项数,用于限制组合框中能够包含的最大项数,其缺省值是最大的带符号整数,典型值是2147483647。能够经过maxCount()和setMaxCount()方法访问
  • insertPolicy:insertPolicy用于控制用户执行编辑框中项插入的策略,其类型为枚举类型QComboBox.InsertPolicy,默认值是QComboBox.InsertAtBottom,即插入到底部,能够经过方法insertPolicy()和方法setInsertPolicy()来访问
  • minimumContentsLength:用于控制组合框应包含的最小字符个数,缺省值为0,能够经过方法minimumContentsLength()和setMinimumContentsLength访问
  • iconSize:用于控制组合框中显示的图标的大小。除非显式设置,不然返回当前样式的默认值。此大小是图标能够具备的最大大小;较小大小的图标不会放大。能够经过方法iconSize()和setIconSize()来访问
  • duplicatesEnabled:用于控制是否容许用户添加剧复项,缺省值为False,能够经过方法duplicatesEnabled()和setDuplicatesEnabled()进行访问
  • frame:用于控制组合框是否显示框架,缺省值为True,能够经过方法hasFrame() 和setFrame()来访问
  • modelColumn:用于控制模型中哪列在组合框弹出列表中可见。

3、组合框项的操做方法

组合框的主要操做方法都是基于项进行访问的方法,包括:web

  • 使用方法insertItem()和insertItems()插入项
  • 使用setItemText()更改项
  • 使用removeItem()删除项
  • 使用clear()删除全部项
  • 使用currentText()访问当前项的文本
  • 使用text()方法访问指定序号项的文本
  • 使用setCurrentIndex()设置当前项
  • 使用count()获取组合框中的项数
    • 使用clearEditText()清除可编辑组合框显示的字符串而不更改组合框的内容

4、对项的操做会触发以下相关信号:

  • 组合框的当前项更改,会发出两个信号:currentIndexChanged()和activated()
  • 当用户在组合框弹出列表中突出显示某个项时,将发出highlighted()信号
  • 每当可编辑组合框的文本发生更改时,都会发出editTextChanged()信号。

广告

老猿关于PyQt的付费专栏《使用PyQt开发图形界面Python应用》只须要9.9元,该部分与第十五章的内容基本对应,但一样内容在付费专栏上整体来讲更详细、案例更多。本节内容对应付费专栏的《第三十四章、PyQt中的输入部件:QComboBox组合框功能详解》。若是有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。框架

老猿Python,跟老猿学Python!