下拉选择框QCombox
继承于 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的更多相关文章
- java、easyui-combotree树形下拉选择框
最近一直在研究这个树形的下拉选择框,感觉非常的有用,现在整理下来供大家使用: 首先数据库的表架构设计和三级菜单联动的表结构是一样,(父子关系) 1.下面我们用hibernate建一下对应的额实体类: ...
- FancySelect – 更好用的 jQuery 下拉选择框插件
FancySelect 这款插件是 Web 开发中下拉框功能的一个更好的选择.FancySelect 使用方便,只要绑定页面上的任何 Select 元素,并调用就 .fancySelect() 就可以 ...
- HTML、CSS小知识--兼容IE的下拉选择框select
HTML <div class="s_h_ie"> <select id="Select1" disabled="disabled& ...
- Bootstrap系列 -- 15. 下拉选择框select
Bootstrap框架中的下拉选择框使用和原始的一致,多行选择设置multiple属性的值为multiple.Bootstrap框架会为这些元素提供统一的样式风格 <form role=&quo ...
- CSS自定义select下拉选择框(不用其他标签模拟)
今天群里有人问到怎么自定义select下拉选择框的样式,于是群里就展开了激烈的讨论,刚开始一直就是考虑怎样使用纯CSS实现,把浏览器默认的样式覆盖掉,但最后均因兼容问题处理不好而失败告终,最后的解决方 ...
- 基于jQuery美化联动下拉选择框
今天给大家介绍一款基于jQuery美化联动下拉选择框.这款下下拉选择框js里自带了全国所有城市的数数库.下拉选择框适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲 ...
- ul+jquery自定义下拉选择框
<!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...
- 背水一战 Windows 10 (105) - 通知(Toast): 带按钮的 toast, 带输入的 toast(文本输入框,下拉选择框)
[源码下载] 背水一战 Windows 10 (105) - 通知(Toast): 带按钮的 toast, 带输入的 toast(文本输入框,下拉选择框) 作者:webabcd 介绍背水一战 Wind ...
- jQuery插件——下拉选择框
其实,之前也写过jQuery插件,今天写的是一个模拟select选择的下拉插件. 既然是jQuery插件,那么必然是依赖jQuery的了. 老规矩,直接上代码吧! ;(function () { $. ...
随机推荐
- BZOJ2819Nim——树链剖分+线段树+Nim游戏
题目描述 著名游戏设计师vfleaking,最近迷上了Nim.普通的Nim游戏为:两个人进行游戏,N堆石子,每回合可以取其中某一堆的任意多个,可以取完,但不可以不取.谁不能取谁输.这个游戏是有必胜策略 ...
- s - t 平面图最大流 (附例题 bzoj 1001)
以下均移自 周冬的<两极相通-浅析最大最小定理在信息学竞赛中的应用> 平面图性质 1.(欧拉公式)如果一个连通的平面图有n个点,m条边和f个面,那么f=m-n+2 2.每个平面图G都有一个 ...
- (转)二分图匹配匈牙利算法与KM算法
匈牙利算法转自于: https://blog.csdn.net/dark_scope/article/details/8880547 匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名 ...
- Maven项目读取resources下文件的路径问题(getClassLoader的作用)
读取resources下文件的方法 网上有问答如下:问: new FileInputStream("src/main/resources/all.properties") new ...
- oracle安装教程及常用命令
虽然网上已经有很多安装教程了,但还是写一个记录一下自己的安装过程以及遇到问题的解决办法 1 安装包下载: 去oracle的官网:https://www.oracle.com/index.html 选 ...
- 利用NEST2.0 在C#中操作Elasticsearch
前言:本文主要演示了如何通过c#来操作elasticsearch,分两个方面来演示: 索引数据 搜索数据 Note: 注意我索引数据和搜索数据是两个不同的例子,没有前后依赖关系 准备工作:需要在vis ...
- 百度地图手机端单触点单击和长按事件,解决部分手机(小米手机)地图单击事件失效,多触点、拖动依然触发长按的bug
/** * Author 岳晓 * * 对百度地图的事件扩展,目前扩展了fastclick和longclick, * 解决某些设备click不执行的问题 * 解决长按事件在拖动.多触点依然执行的bug ...
- typescript泛型(学习笔记非干货)
软件工程中,我们不仅要创建一致的定义良好的API,同时也要考虑可重用性. 组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型, 这在创建大型系统时为你提供了十分灵活的功能. In softwa ...
- 动态分配内存 new
a=]; ;i<=n;i++) a[i]=]; 感觉比malloc好用. 动态初始化后,值并非全为0,注意!
- 键盘监听事件KeyListener
说明:按下实体按键,相应虚拟按键变绿色,释放按键,变白色. public class Demo extends JFrame { private List<JButton> list; ...