继承于  QWidget

下拉列表框样式如图:

import sys
from PyQt5.QtWidgets import QApplication, QWidget,QPushButton,QComboBox,QCompleter
from PyQt5.QtGui import QIcon,QValidator
from PyQt5.QtCore import QSize class Demo(QWidget):
def __init__(self):
super().__init__()
self.resize(300,300)
def A():
s=cb.count() #获取项目总数--包括分割线
s = cb.currentIndex() # 获取当前项目的索引
s = cb.currentText() # 取当前项目的文本
s = cb.currentData() # 获取当前项目的用户附加的数据
s=cb.itemIcon(2) #获取指定索引项目的图标对象
s=cb.itemData(3) #获取指定索引项目的用户附加的数据
s=cb.itemText(3) #获取指定索引项目的文本 print(s) def B():
#cb.setMaxCount(4) # 设置最大存储项目总数
#达到指定项目总数后,不能再添加
#maxCount() 返回最大可存储项目总数
#cb.setMaxVisibleItems(3) #设置可见的项目总数
#maxVisibleItems() 返回可见的项目总数 #cb.clear() #清空所有项目 #cb.clearEditText() #只是清空当前编辑框中的文本--不改变项目数 #cb.showPopup() #弹出下拉框 pass btn=QPushButton('获取数据',self)
btn.move(80,250)
btn.clicked.connect(A)
btn1 = QPushButton('按钮1', self)
btn1.move(160, 250)
btn1.clicked.connect(B)
cb=QComboBox(self) #构造出一个空白的下拉列表控件
cb.move(100,20) cb.addItem('天津','a') #添加一个项目
#参数1 项目-必须是文本
#参数2 用户附加数据-任何类型
cb.addItem(QIcon(r'大象1.png'),'北京','b') #添加一个项目--带图标
cb.addItems(['上海','浙江']) #添加项目序列
#参数 可迭代的数据 cb.insertItem(1,'重庆','c') #插入一个项目
#参数1 索引号
cb.insertItem(1, QIcon(r'大象1.png'),'西安','d') # 插入一个项目--带图标
cb.insertItems(1,['辽宁','黑龙江']) #插入项目序列
#参数2 可迭代的数据 cb.setItemIcon(2,QIcon(r'大象1.png')) #给指定索引项目设置图标
cb.setItemText(7,'蒙古') #给指定索引项目设置文本---原有文本被覆盖
#cb.removeItem(7) #删除指定索引的项目 cb.insertSeparator(4) #插入分割线---分割线做为指定索引项目 cb.setCurrentIndex(2) #指定索引项目为当前项目--默认是第0项目
cb.setCurrentText('西安') #根据文本指定当前项目
#如果参数所指的项目不存在的话就无效 cb.setEditable(True) #编辑框能否被编辑
#在编辑框中编辑文本回车之后,会追加到项目尾部
#isEditable() 返回能否被编辑 #cb.setEditText('广东') #设置编辑框中的文本
#只有setEditable设为True,setEditText才有效
#按了回车键 会追加到项目尾部 cb.setDuplicatesEnabled(True) #是否可重复
#设置为True时,编辑框按回车时追加的项目可以重复
#duplicatesEnabled() 返回是否可重复 cb.setFrame(True) #是否有框架--是否有外框
#setEditable 设置为True时 setFrame才有效果
#hasFrame() 返回是否有框架 cb.setIconSize(QSize(40,40)) #设置图标尺寸
#iconSize() 返回图标尺寸 cb.setSizeAdjustPolicy(QComboBox.AdjustToContents) #尺寸调整策略
#QComboBox.AdjustToContents 组合框将始终根据最长内容进行调整
#QComboBox.AdjustToContentsOnFirstShow 组合框将在第一次显示时调整其内容。
#QComboBox.AdjustToMinimumContentsLengthWithIcon 组合框将调整为minimumContentsLength加上图标的空间。出于性能原因,请在大型模型上使用此策略。 cl = QCompleter(['1abc', 'gfds', 'yur', 'aew'])
#参数 可迭代的
cb.setCompleter(cl) # 设置完成器--自动补全 #cb.setValidator() #设置验证器
#参照:单行输入文本框 #信号:
#cb.activated.connect(self.AA) #某个条目被选中时,必须是用户交互, 造成的值改变才会发射这个信号
#会向槽函数传递一个int值--被选中项目的索引号 #cb.activated[str].connect(self.BB) # 某个条目被选中时,必须是用户交互, 造成的值改变才会发射这个信号
# 会向槽函数传递一个字符串--被选中项目的文本 #cb.currentIndexChanged.connect(self.CC) #当前选中的索引发生改变时-用户交互,代码控制
# 会向槽函数传递一个int值--被选中项目的索引号 #cb.currentIndexChanged[str].connect(self.DD) # 当前选中的索引发生改变时-用户交互,代码控制
# 会向槽函数传递一个字符串--被选中项目的文本 #cb.currentTextChanged.connect(self.EE) #当前的文本内容发生改变时
# 会向槽函数传递一个字符串--文本框中的文本 #cb.editTextChanged.connect(self.FF) #编辑的文本发生改变时
#setEditable设置为True时,文本框中的文本发生改变时 #cb.highlighted.connect(self.GG) #高亮发生改变时--在下拉列表框中鼠标所选的项目发生变化时
# 会向槽函数传递一个int值--高亮项目的索引号 cb.highlighted[str].connect(self.HH) #高亮发生改变时--在下拉列表框中鼠标所选的项目发生变化时
# 会向槽函数传递一个字符串--高亮项目的文本 def HH(self,x):
print('高亮改变了',x)
def GG(self,x):
print('高亮改变了',x)
def AA(self,x):
print('你的选择改变了',x)
def BB(self,x):
print('你的选择改变了',x)
def CC(self,x):
print('你的选择改变了',x)
def DD(self,x):
print('你的选择改变了',x)
def EE(self,x):
print('文本改变了',x)
def FF(self,x):
print('编辑文本改变了',x) if __name__ == '__main__':
app = QApplication(sys.argv)
demo = Demo()
demo.show()
sys.exit(app.exec_())

天子骄龙

下拉选择框QCombox的更多相关文章

  1. java、easyui-combotree树形下拉选择框

    最近一直在研究这个树形的下拉选择框,感觉非常的有用,现在整理下来供大家使用: 首先数据库的表架构设计和三级菜单联动的表结构是一样,(父子关系) 1.下面我们用hibernate建一下对应的额实体类: ...

  2. FancySelect – 更好用的 jQuery 下拉选择框插件

    FancySelect 这款插件是 Web 开发中下拉框功能的一个更好的选择.FancySelect 使用方便,只要绑定页面上的任何 Select 元素,并调用就 .fancySelect() 就可以 ...

  3. HTML、CSS小知识--兼容IE的下拉选择框select

    HTML <div class="s_h_ie"> <select id="Select1" disabled="disabled& ...

  4. Bootstrap系列 -- 15. 下拉选择框select

    Bootstrap框架中的下拉选择框使用和原始的一致,多行选择设置multiple属性的值为multiple.Bootstrap框架会为这些元素提供统一的样式风格 <form role=&quo ...

  5. CSS自定义select下拉选择框(不用其他标签模拟)

    今天群里有人问到怎么自定义select下拉选择框的样式,于是群里就展开了激烈的讨论,刚开始一直就是考虑怎样使用纯CSS实现,把浏览器默认的样式覆盖掉,但最后均因兼容问题处理不好而失败告终,最后的解决方 ...

  6. 基于jQuery美化联动下拉选择框

    今天给大家介绍一款基于jQuery美化联动下拉选择框.这款下下拉选择框js里自带了全国所有城市的数数库.下拉选择框适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲 ...

  7. ul+jquery自定义下拉选择框

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. 背水一战 Windows 10 (105) - 通知(Toast): 带按钮的 toast, 带输入的 toast(文本输入框,下拉选择框)

    [源码下载] 背水一战 Windows 10 (105) - 通知(Toast): 带按钮的 toast, 带输入的 toast(文本输入框,下拉选择框) 作者:webabcd 介绍背水一战 Wind ...

  9. jQuery插件——下拉选择框

    其实,之前也写过jQuery插件,今天写的是一个模拟select选择的下拉插件. 既然是jQuery插件,那么必然是依赖jQuery的了. 老规矩,直接上代码吧! ;(function () { $. ...

随机推荐

  1. Ideal test 不执行main方法了

    参考:idea 导入项目后不能执行main方法 用了ideal之后,发现自己的项目里面没有test文件夹,自己建了一个,发现竟然不能执行main函数, 后来经过点播之后,才知道,光建立文件夹是没用的, ...

  2. c#异步编程(三)—ASP.NET MVC 异步控制器及EF异步操作

    ASP.NET MVC 异步控制器及EF异步操作 异步控制器 ASP.NET MVC2后开始了对异步请求管道的支持,异步请求管道的作用是允许web服务器处理长时间运行的请求,比如 那些花费大量时间等待 ...

  3. 【HDU 1021】Fibonacci Again(找规律)

    BUPT2017 wintertraining(16) #5 A HDU - 1021 题意 There are another kind of Fibonacci numbers: F(0) = 7 ...

  4. 详解基于朴素贝叶斯的情感分析及 Python 实现

    相对于「 基于词典的分析 」,「 基于机器学习 」的就不需要大量标注的词典,但是需要大量标记的数据,比如: 还是下面这句话,如果它的标签是: 服务质量 - 中 (共有三个级别,好.中.差) ╮(╯-╰ ...

  5. BZOJ 4785 [Zjoi2017]树状数组 | 二维线段树

    题目链接 BZOJ 4785 题解 这道题真是令人头秃 = = 可以看出题面中的九条可怜把求前缀和写成了求后缀和,然后他求的区间和却仍然是sum[r] ^ sum[l - 1],实际上求的是闭区间[l ...

  6. 对 static const char* const str[] = {“string”} 的理解

    static const char* const str[] = {“string”} 静态常量型指针变量 static const char* 常量型变量 const str[] 这样修饰的作用为 ...

  7. 解决React首屏加载白屏的问题

    众所周知,在项目中如果在资源加载请求还未完成的时候,由于阻塞机制,会出现首页白屏的问题,产生很差的用户体验.本文以react为例,提供一个解决方法. 解决原理:使用 onreadystatechang ...

  8. 外显子分析弹错解决方案:Exception in thread "main" picard.PicardException: New reference sequence does not contain a matching contig for NC_007605

    最近从公共数据库下载了一堆bam文件和reference 基因组文件,重新分析外显子流程时,跑出了“Exception in thread "main" picard.Picard ...

  9. kafka安装以及入门

    一.安装 下载最新版kafka,Apache Kafka,然后上传到Linux,我这里有三台机器,192.168.127.129,130,131 . 进入上传目录,解压到/usr/local目录下 - ...

  10. 文本框JTextField,密码框JPasswordField

    1.文本框JTextField public class Demo extends JFrame { public Demo() { setBounds(100, 100, 200, 120); se ...