继承于  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. HTML5 & auto download image

    HTML5 & auto download image https://www.sitepoint.com/new-html5-attributes-hyperlinks-download-m ...

  2. js timeout

    setTimeOut(“”,毫秒):調用函數時,不是立刻執行,而是間隔一定的時間后在執行: clearTimeOut():清除計時器

  3. NVIDIA面目生成器再做突破

    导读 NVIDIA创建的AI系统“GAN”可以通过对图像数据库的学习,来随机生成超逼真人脸照片而一炮走红,经过长时间的研发与晚上目前这套系统已经有了极大的进步.除了可以自主学习之外,生成的内容逼真,让 ...

  4. Beyond Compare 4过期

    试用期到期操作:找到beyond Compare 4文件夹下面的BCUnrar.dll,将其删掉或者重命名,再重新打开接着使用!

  5. Django-website 程序案例系列-9 分页

    分页例子程序: LIST = [] #全局列表 for i in range(103): #1:100的列表 LIST.append(i) def user_list(request): curren ...

  6. 【BZOJ3879】SvT(后缀自动机,虚树)

    [BZOJ3879]SvT(后缀自动机,虚树) 题面 BZOJ 题解 看着这个东西,询问若干个前缀两两之间的\(lcp\)? 显然\(lcp\)就是\(SAM\)构建出来的\(parent\)数上的\ ...

  7. CF1073E Segment Sum 解题报告

    CF1073E Segment Sum 题意翻译 给定\(K,L,R\),求\(L~R\)之间最多不包含超过\(K\)个数码的数的和. \(K\le 10,L,R\le 10^{18}\) 数位dp ...

  8. luogu4181 [USACO18JAN]Rental Service (贪心)

    我们要出租的话,一定是出租产奶量最少的牛 那我们就看出租多少头牛(其他的卖奶)的时候答案最大就可以了. (注意N有可能小于R) #include<bits/stdc++.h> #defin ...

  9. matplotlib fill和fill_between

    import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 5 * np.pi, 1000) y1 = np.sin(x ...

  10. (转)synchronized和lock的区别

    背景:最近在准备java基础知识,对于可重入锁一直没有个清晰的认识,有必要对这块知识进行总结. 1 . 什么是可重入锁 锁的概念就不用多解释了,当某个线程A已经持有了一个锁,当线程B尝试进入被这个锁保 ...