是一个组合控件

是一个文本框带一个下拉选择框

继承QWeight

长这样

目录

1  构造函数

2  数据操作

2.1  添加条目项

2.1.1  添加纯字符条目 additem(str,userData)

2.1.2  添加字符与图标混合条目 addItem(QIcon,str,userData)

2.2  添加批量纯字符条目 addItems(Iterable[str])

2.3  插入条目项

2.3.1  插入纯字符条目 insertitem(int,str,userData)

2.3.2  插入字符与图标混合条目 insertitem(int,QIcon,str,userData)

2.3.3  插入批量纯字符条目 insertitems(int,iterable[str]))

2.4  设置条目项

2.4.1  设置指定条目图标 setItemIcon(int,QIcon)

2.4.2  设置指定条目内容 setItemText(int,str)

2.4.3  插入用户数据 setItemData(int,userDate,int(which user))

2.5  删除指定的条目项 removeItem()

2.6  插分割线 insertSeparator()

2.7  设置当前文本

2.7.1  设置指定位数条目作为当前文本 setCurrentIndex()

2.7.2  设置条目中的字符串为当前文本 setCurrentText(str)

2.7.3  设置任意字符串为当前文本 setEditText(str)

3  模型操作

4  视图操作

5  代理设置

6  数据获取

6.1  获取条目个数 count()

6.2  获取指定条目图标对象 itemIcon(int)

6.3  获取指定条目的内容 itemText()

6.4  获取指定条目的用户数据 itemData(int)

6.5  获取当前数据的索引 currentIndex()

6.6  获取当前数据的内容 currentText()

7  数据限制

7.1  最大条目数

7.1.1  设置 setMaxCount()

7.1.2  获取 maxCount()

7.2  最大显示条目数

7.2.1  获取 maxVisbleItems()

7.2.2  设置 setMaxVisibleItems()

8  常规操作

8.1  可编辑

8.1.1  设置 setEditable()

8.1.2  获取 isEditable()

8.2  条目可重复

8.2.1  设置 setDuplicatesEnabled()

8.2.2  获取 duplicatesEnabled()

8.3  有框架

8.3.1  设置 setFrame()

8.3.2  获取 hasFrame()

8.4  图标尺寸

8.4.1  设置 setIconSize()

8.4.2  获取 iconSize()

8.5  清空

8.5.1  清空所有条目 clear()

8.5.2  清空正在编辑的内容 clearEditText()

8.6  弹出 showPopup()

8.7  完成器

8.7.1  设置 setCompleter()

8.7.2  获取 completer()

8.8  验证器

8.8.1  设置 setValidator()

8.8.2  获取 validator()

9  尺寸调整策略

9.1  设置 setSizeAdjustPolicy()

9.1.1  QComboBox.AdjustToContents 根据最长内容进行调整

9.1.2  QComboBox.AdjustToContentsOnFirstShow 根据第一次显示的内容进行调整(默认值)

9.1.3  最小长度

9.1.4  QComboBox.AdjustToMinimumContentsLength 根据最小长度内容进行调整

9.1.5  QComboBox.AdjustToMinimumContentsLengthWithIcon 根据带图标的最小长度进行调整

9.2  获取尺寸政策 sizeAdjustPolicy()

10  信号

10.1  任意条目被选中时触发 activated 会传递一个int

10.2  任意条目被选中时触发 activated[str] 会传递一个str

10.3  选中的索引发生改变时 currentIndexChanged() 会传递一个int

10.4  选中的索引发生改变时 currentIndexChanged[str] 会传递一个str

10.5  当前文本内容发生改变 currentTextChanged 会传递一个str

10.6  编辑的文本发生改变时 editTextChanged 会传递一个str

10.7  移动到下拉菜单任意条目触发 highlighted 会传递一个Int

10.8  移动到下拉菜单任意条目触发 highlighted[str] 会传递一个str


1  构造函数

此时创建了一个空的QComboBox

点击下按钮不会出现下拉菜单

2  数据操作

以下使用的userData并非显示在界面中的数据,而是可以传递的数据,可以为任何变量类型

当然也可以不加userData,不加userData默认userData为None

2.1  添加条目项

2.1.1  添加纯字符条目 additem(str,userData)

运行结果

点击下拉菜单后可展示添加的条目项

2.1.2  添加字符与图标混合条目 addItem(QIcon,str,userData)

点击下拉菜单后可展示条目项

2.2  添加批量纯字符条目 addItems(Iterable[str])

参数为可迭代的str对象就行

点击下拉菜单可以查看所有的条目

2.3  插入条目项

我们插入条目项中,第一个参数是插入后该条目所在的位置

我们使用刚刚创建的所有条目

2.3.1  插入纯字符条目 insertitem(int,str,userData)

我们现在在第0位插入一个条目

点开下拉菜单时发现成功插入

2.3.2  插入字符与图标混合条目 insertitem(int,QIcon,str,userData)

我们在3号位插入图文混合条目

成功在3号位插入

2.3.3  插入批量纯字符条目 insertitems(int,iterable[str]))

我们在5号位插入批量纯字符条目

2.4  设置条目项

2.4.1  设置指定条目图标 setItemIcon(int,QIcon)

我们给7号位的条目添加图标

发现第7位已经添加了图标

2.4.2  设置指定条目内容 setItemText(int,str)

我们设置第4个条目的内容

2.4.3  插入用户数据 setItemData(int,userDate,int(which user))

用户数据在界面内是不显示的

我们在6.数据获取中会讲怎么获取它

2.5  删除指定的条目项 removeItem()

删除前是这样的

我们删除第0位的条目项

发现已被删除

2.6  插分割线 insertSeparator()

我们现在在1号位和2号位之间分割线

  • 注:此处是在指定位数的上面插入分割线

2.7  设置当前文本

我们当前编辑的文本默认为第一个加入条目的文本

2.7.1  设置指定位数条目作为当前文本 setCurrentIndex()

我们现在把第四个条目设置为当前文本

2.7.2  设置条目中的字符串为当前文本 setCurrentText(str)

  • 不能使用条目外的字符串作为当前文本

2.7.3  设置任意字符串为当前文本 setEditText(str)

如果像使setEditText()有效,我们需要先将控件设置为可编辑状态

2.7.3.1  设置可编辑状态 setEditable()

设置过后,我们使用setEditText()

如果设置的字符串不在条目之中,我们输入完成后按下回车

发现会被加入到下拉菜单中

3  模型操作

由于涉及到QAbstractItemModel控件,我们先用这个控件举个例子,关于这个控件的详细用法之后再讲

首先我们创建一个基础模型对象,之后创建三个条目,之后将条目3作为条目2的自条目,条目1条目2为模型的根条目

之后将模型作为参数给cbb

现在我们运行之后是这样的

我们并没有看到item3,这个是因为视图的原因,下面我们对视图进行操作

4  视图操作

我们在这里使用树形视图

这个时候运行之后是这样

把控件尺寸改大一点就可以全部展示出来

5  代理设置

这个放到后面学这个控件的时候讲

6  数据获取

我们新建一个QComboBox,然后放三个条目进去

6.1  获取条目个数 count()

6.2  获取指定条目图标对象 itemIcon(int)

我们首先给一个条目一个图标

在这里我们如果获取图标前没有设置图标,该方法会返回一个空的QIcon对象,我们可以也可以对这个QIcon对象进行操作

6.3  获取指定条目的内容 itemText()

6.4  获取指定条目的用户数据 itemData(int)

首先我们对0号条目设置用户数据

之后再获取它

6.5  获取当前数据的索引 currentIndex()

  • 我们在这里获取了当前条目的索引,就可以使用6.2,6.3,6.4中的方法去获得当前条目的相关信息

6.6  获取当前数据的内容 currentText()

7  数据限制

我们现在搞20个条目,内容为1-20的数字

7.1  最大条目数

7.1.1  设置 setMaxCount()

我们限制最大条目数为5

条目数为最大值时,此时再添加新的条目添加不进去

7.1.2  获取 maxCount()

7.2  最大显示条目数

7.2.1  获取 maxVisbleItems()

默认情况下,我们最大显示条目数为10

7.2.2  设置 setMaxVisibleItems()

我们现在将其设置为15

8  常规操作

8.1  可编辑

默认状态下是不可编辑的

8.1.1  设置 setEditable()

8.1.2  获取 isEditable()

8.2  条目可重复

默认状态下是不可重复的

如果用代码加入条目的话可以重复,用户手动输入进去则默认不能重复

我们运行后输入一个1

发现已经加入到条目中了,现在我们再输入一个1

此时我们发现加入不了了

8.2.1  设置 setDuplicatesEnabled()

运行后,我们输入一个1,然后按两下回车

发现可以加入了

8.2.2  获取 duplicatesEnabled()

8.3  有框架

这个设置设置有无框架时只有在可编辑状态下才有区别

默认情况下是有框架的

8.3.1  设置 setFrame()

8.3.2  获取 hasFrame()

8.4  图标尺寸

我们首先搞一个有图标的条目

8.4.1  设置 setIconSize()

我们将图标大小设置为50,50

8.4.2  获取 iconSize()

8.5  清空

8.5.1  清空所有条目 clear()

我们搞一个按钮试一下下面这个方法

运行开始时,我们发现有一个之前创建的气球条目

现在我点一下按钮

发现条目没了

8.5.2  清空正在编辑的内容 clearEditText()

首先我们需要让组合框为可编辑状态

然后搞一个按钮,连接clearEditText()

初始状态是这样的,此时该条目已处于编辑状态

我们按一下按钮

发现文字没有了

8.6  弹出 showPopup()

我们搞一个按钮连接showPopup()

起始状态是这样的

我们点一下弹出

发现弹出了条目

8.7  完成器

首先我们先搞一个完成器

第一个参数是提示的字段,第二个参数为父对象

8.7.1  设置 setCompleter()

运行之后我们输入大写的S

完成器是不出现在条目中的

8.7.2  获取 completer()

8.8  验证器

我们先搞一个子类继承QValidator

用的还是34.QLineEdit中使用的验证器

8.8.1  设置 setValidator()

当我们输入1800,我们发现只能输入到180

8.8.2  获取 validator()

9  尺寸调整策略

9.1  设置 setSizeAdjustPolicy()

可选参数为下面这四个

  • QComboBox.AdjustToContents 根据最长内容进行调整
  • QComboBox.AdjustToContentsOnFirstShow 根据第一次显示的内容进行调整(默认值)

下面两个是没有作用的

  • QComboBox.AdjustToMinimumContentsLength 根据最小长度内容进行调整(效果同QComboBox.AdjustToContentsOnFirstShow)
  • QComboBox.AdjustToMinimumContentsLengthWithIcon 根据带图标的最小长度进行调整

我们先给组合框设置可编辑,这样效果更好

9.1.1  QComboBox.AdjustToContents 根据最长内容进行调整

我们输入一个1,之后按回车

我们输入hello,然后按回车

我们输入2,然后按回车

发现不会再变小了

9.1.2  QComboBox.AdjustToContentsOnFirstShow 根据第一次显示的内容进行调整(默认值)

我们输入一个1,然后按回车

发现不会变小了,这个控件第一次展示出来什么样子,后面就一直会是什么样子,我们再输入hello world

没有变化

下面的几个方法(9.2之前)经测试都是没有什么用的了

9.1.3  最小长度

9.1.3.1  设置最小长度 setMinimumContentsLength()

9.1.3.2  获取最小长度 minimumContentsLength()

9.1.4  QComboBox.AdjustToMinimumContentsLength 根据最小长度内容进行调整

运行后,我们输入一个1

没变,说明它认定当前就是最小状态了

9.1.5  QComboBox.AdjustToMinimumContentsLengthWithIcon 根据带图标的最小长度进行调整

没有用,并不是按照带图标调整的

9.2  获取尺寸政策 sizeAdjustPolicy()

会返回一个int

10  信号

我们首先搞三个条目进去

10.1  任意条目被选中时触发 activated 会传递一个int

运行之后我们依次选择hello,world和2

10.2  任意条目被选中时触发 activated[str] 会传递一个str

运行之后我们依次选择hello,world和2

10.3  选中的索引发生改变时 currentIndexChanged() 会传递一个int

运行之后我们依次选择hello,world和2

10.4  选中的索引发生改变时 currentIndexChanged[str] 会传递一个str

运行之后我们依次选择hello,world和2

10.5  当前文本内容发生改变 currentTextChanged 会传递一个str

运行之后我们依次选择hello,world和2

10.6  编辑的文本发生改变时 editTextChanged 会传递一个str

首先要让组合框变为可编辑状态

运行后我们按三个退格

10.7  移动到下拉菜单任意条目触发 highlighted 会传递一个Int

运行后点开下拉菜单,将鼠标移动到hello

之后再移动到world和2

10.8  移动到下拉菜单任意条目触发 highlighted[str] 会传递一个str

运行后点开菜单,分别移动到hello,world和2的条目

49.QComboBox相关推荐

  1. Delegate(QLabel和QComboBox)

    一.最终效果 二.实现思路 1.createEditor()中create两个控件,分别是QLabel和QComboBox,将其添加到一个widget中,然后返回该widget: 2.setEdito ...

  2. qcombobox 隐藏_Qt之QComboBox定制

    说起下拉框,想必大家都比较熟悉,在我们注册一些网站的时候,会出现大量的地区数据供我们选择,这个时候出现的就是下拉框列表,再比如字体选择的时候也是使用的下拉框,如图1所示.下拉框到处可见,作为一个图形库 ...

  3. Error:(49, 1) A problem occurred evaluating project ':guideview'. Could not read script 'https://r

    出现问题如下: Error:(49, 1) A problem occurred evaluating project ':guideview'. > Could not read script ...

  4. Python Qt GUI设计:QComboBox下拉列表框类(基础篇—14)

    QComboBox是一个集按钮和下拉选项于一体的控件,也被称为下拉列表框. QComboBox类中的常用方法如下表所示: QComboBox类中的常用信号如下表所示: 来看看QComboBox按钮类的 ...

  5. 整理收集49条JQuery代码小结

    1. 如何创建嵌套的过滤器 . 代码如下://允许你减少集合中的匹配元素的过滤器, //只剩下那些与给定的选择器匹配的部分.在这种情况下, //查询删除了任何没(:not)有(:has) //包含cl ...

  6. STL笔记(5)条款49:学习破解有关STL的编译器诊断信息

    STL笔记(5)条款49:学习破解有关STL的编译器诊断信息 条款49:学习破解有关STL的编译器诊断信息 用一个特定的大小定义一个vector是完全合法的, vector<int> v( ...

  7. 英伟达Q4净利同比降49%,还能继续躺赚吗?

    图片来自英伟达官网 整理 | 非主流 出品 | AI科技大本营(ID:rgznai100) 北京时间 2 月 15 日凌晨消息,英伟达公布了 2019 财年第四季度及全年财报.报告显示,英伟达第四季度 ...

  8. 49 岁的红杉资本遭遇黑客攻击

    整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 大名鼎鼎的红杉资本想必大家定有所耳闻:1972 年在美国硅谷成立迄今已有 49 年历史,作为第一家机构投资人投资了众多著名创新型公司,如 ...

  9. 2017最新整理传智播客JavaEE第49期 基础就业班

    2017最新整理传智播客JavaEE第49期 基础就业班 可以说是一套不可多的的教程,有条件的同学建议报名培训,效果更佳,没有条件的朋友就买个培训课堂上录制的视频吧. 视频教程推送门:http://b ...

  10. 分享:Dlib 17.49 发布,跨平台 C++ 通用库

    Dlib 17.49 发布,跨平台 C++ 通用库 http://www.oschina.net/news/35962/dlib-cpp-lib-17-49

最新文章

  1. COM:细菌-真菌的平衡维持动植物健康
  2. 微信JS-SDK开发:扫一扫接口功能实现
  3. 用好 Java 中的枚举,真的没有那么简单!
  4. python序列化模块struct_python的struct模块
  5. mysql筛选字符个数为8的_听说Mysql你很豪横?-------------分分钟带你玩转SQL高级查询语句(常用查询,正则表达式,运算符)...
  6. hbase shell远程连接_hbase与phoenix集成
  7. DirectShow 在VS2005中环境配置
  8. 微信小程序云数据库带换行的文本保存和获取
  9. cannot add new member解决方法
  10. app开发的三大技术框架
  11. wget 的安装与使用(Windows)
  12. spring整合kaptcha验证码
  13. 第十二周助教心得体会
  14. QScrollArea 动态添加控件问题
  15. 专访智齿科技吴立楠:智能客服行业发展的三个趋势
  16. 节后安全生产会议记要
  17. 面试:如何用最少的老鼠试出有毒的牛奶?
  18. 标准盒子模型与怪异盒子模型
  19. XXE-什么是XXE
  20. 【Python】两种方法计算平均值、中值、众数、方差、标准差、百分位数

热门文章

  1. python词云图生成
  2. 主管都在用项目管理Excel表格模板管理项目
  3. 计算机信息管理发展的重要性,建设计算机信息管理系统的意义和目标
  4. ENVI5.1裁剪影像及注意要点(如无论规则或是不规则裁剪结果都是矩形的问题求解)
  5. python查成绩_方正教务处自动抢课查成绩(python版)(一)
  6. python—Django面试题汇总
  7. 关于电的计算机公式,电能计算-电能的计算公式-电工基础 - 电工屋
  8. 字符串逆序(三种方法)
  9. 差分编码解析以及FPGA实现
  10. CAD转换高清图片该如何进行设置