组合框-下拉选择框QCombox

摘要:
出于性能原因,请在大型模型上使用此策略。

组合框-下拉选择框QCombox第1张

继承于QWidget

下拉列表框样式如图:

组合框-下拉选择框QCombox第2张

importsys
from PyQt5.QtWidgets importQApplication, QWidget,QPushButton,QComboBox,QCompleter
from PyQt5.QtGui importQIcon,QValidator
from PyQt5.QtCore importQSize
classDemo(QWidget):
    def __init__(self):
        super().__init__()
        self.resize(300,300)
        defA():
            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)
        defB():
            #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)  #高亮发生改变时--在下拉列表框中鼠标所选的项目发生变化时
        #会向槽函数传递一个字符串--高亮项目的文本
    defHH(self,x):
        print('高亮改变了',x)
    defGG(self,x):
        print('高亮改变了',x)
    defAA(self,x):
        print('你的选择改变了',x)
    defBB(self,x):
        print('你的选择改变了',x)
    defCC(self,x):
        print('你的选择改变了',x)
    defDD(self,x):
        print('你的选择改变了',x)
    defEE(self,x):
        print('文本改变了',x)
    defFF(self,x):
        print('编辑文本改变了',x)
if __name__ == '__main__':
    app =QApplication(sys.argv)
    demo =Demo()
    demo.show()
    sys.exit(app.exec_())

天子骄龙

免责声明:文章转载自《组合框-下拉选择框QCombox》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇浅析C#打印和C#打印预览的实现分析带UMI标签的测序数据下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ADO.NET复习

目录 ADO.NET ADO.NET思维导图 命名空间 常用类介绍 Connection 类概述 Command 类概述 DataReader 类概述 DataAdapter 类概述 DataSet 类概述 DataTable DataRow类 DataColumn 类 DataSet:更新数据库(SqlCommandBuilder)...

MFC 三种消息

在MFC应用程序中传输的消息有三种类型:窗口消息、命令消息和控件通知。 (1)窗口消息:WM_XXX 窗口消息(Window Message)一般与窗口的内部运作有关,如:创建窗口、绘制窗口和销毁窗口等。通常,消息是从系统发送到窗口,或从窗口发送到窗口。 (2)命令消息:WM_COMMAND 命令消息一般与处理用户请求相关,当用户单击一个菜单项或工具栏时...

标准控件的使用技巧与自绘控件

在您决定开发 Windows 提供的常规免费自定义控件范围之外的控件之后,您必需确定自己的控件将有多少独到之处 — 在功能和外观两方面。例如,我们假定您正在创建一个类似于计速表的控件。由于公共控件库 (ComCtrl32.dll) 中没有类似的控件,您完全需要自己进行以下操作:编写所有控件功能需要的代码,进行绘制,默认终端用户的交互,以及控件与其父窗口之间...

SendMessage()鼠标软模拟

//鼠标软模拟:好处就是不会真的移动鼠标 开始按钮 坐标 x=386y=387 SendMessage(hookHwnd,messages.WM_LBUTTONDOWN ,0,$0180017A); //按下鼠标左键 SendMessage(hookHwnd,messages.WM_LBUTTONUP ,0, $0180017A); //抬起鼠标左键...

71.Ext.form.ComboBox 完整属性

转自:https://blog.csdn.net/taotaoqi/article/details/7409514 Ext.form.ComboBox 类全称:Ext.form.ComboBox 继承自于:Ext.form.TriggerField   一个提供自动完成、远程加载、分页和许多其他特性的组合框。   配置项 1、transform : Mix...

扩展 DataGridView 的功能(二)

二、加入可以输入文字的 DataGridViewComboBoxCell DataGridView 的功能确实很强大,要实现在 grid 中加入 ComboBox , 只需要将grid列的类型改为DataGridViewComboBoxColumn 即可 DataGridViewComboBoxColumn 也是从DataGridViewColumn 中继...