PyQt6 QComboBox下拉组合框控件

2023-12-04 17:12

本文主要是介绍PyQt6 QComboBox下拉组合框控件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

​锋哥原创的PyQt6视频教程:

2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计34条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~、第2讲 PyQt6库和工具库QTDesigner安装与配置、第3讲 PyQt6第一个程序HelloWorld实现等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV11C4y1P7fj/

QComboBox控件,又称为下拉组合框控件,它主要用于在下拉组合框中显示数据,用户可以从中选择项。

1、【read-only】count : const int

组合框中的项目数。

2、【read-only】currentData : const QVariant

当前项目的数据。

3、currentIndex : int

组合框中当前项目的索引。插入或删除项目时,当前索引可以更改。

4、currentText : QString

当前文本。如果组合框是可编辑的,则当前文本是行编辑显示的值。

如果组合框是可编辑的,setCurrentText() 只会调用 setEditText()。否则,如果列表中有匹配的文本,则 currentIndex 设置为相应的索引。

5、duplicatesEnabled : bool

可编辑时设置setSizeAdjustPolicy()将输入内容插入到组合框,是否可以在组合框中插入重复项。默认为 false。

请注意,始终可以以编程方式将重复项插入组合框。

6、editable : bool

是否可以编辑组合框。默认为 false。编辑的效果取决于插入策略。

注意:禁用可编辑状态时,将删除验证器和完成器。

7、frame : bool

略。

8、iconSize : QSize

组合框中显示的图标的大小。这是图标可以具有的最大大小,较小尺寸的图标不会放大。

9、insertPolicy : InsertPolicy

可编辑时插入的项目应出现在组合框中的位置的策略。

默认值为 InsertAtBottom,即新项目将出现在项目列表的底部。

10、maxCount : int

组合框中允许的最大项目数。

如果将最大数量设置为小于组合框中当前项目的数量,则额外的项目将被截断。如果在组合框上设置了外部模型,这也适用。

11、maxVisibleItems : int

组合框屏幕上允许的最大项目数。默认为 10。

对于 QStyle::SH_ComboBox_Popup 返回 true 的样式中的不可编辑组合框,将忽略此属性。

12、minimumContentsLength : int

应适合组合框的最小字符数。默认值为 0。

如果此属性设置为正值,则 minimumSizeHint() 和 sizeHint() 会将其考虑此属性在内。

13、modelColumn : int

模型中可见的列。默认为 0。

14、placeholderText : QString

未设置有效索引时显示的占位符文本文本。

当设置无效索引时将显示占位符文本,下拉列表中的文本不可访问。在添加项目之前调用此函数时,将显示占位符文本,否则如果要显示占位符文本,则必须以编程方式调用 setCurrentIndex(-1)。

当 QComboBox 可编辑时,请改用 lineEdit()->setPlaceholderText()。

15、sizeAdjustPolicy : SizeAdjustPolicy

内容更改时组合框大小如何更改的策略。默认值为 AdjustToContentsOnFirstShow。

1、enum QComboBox::InsertPolicy:此枚举指定当用户输入新字符串时 QComboBox 应该做什么。

NoInsert:字符串不会插入组合框。 InsertAtTop:字符串将作为组合框中的第一项插入。 InsertAtCurrent:当前项目将被字符串替换。 InsertAtBottom:字符串将插入组合框中的最后一项之后。 InsertAfterCurrent:在组合框中的当前项目之后插入字符串。 InsertBeforeCurrent:在组合框中的当前项目之前插入字符串。 InsertAlphabetically:字符串按字母顺序插入组合框中。 2、enum QComboBox::SizeAdjustPolicy:此枚举指定当添加新内容或内容更改时 QComboBox 的大小提示应如何调整。

AdjustToContents:组合框将始终根据内容进行调整 AdjustToContentsOnFirstShow:组合框将在第一次显示时调整其内容。 AdjustToMinimumContentsLengthWithIcon:组合框将调整为 minimumContentsLength 加上图标的空间。 出于性能原因,应在大型模型上使用此策略。

QComboBox类的常用方法

方法说明
addItem()添加一个下拉列表项
addItems()从列表中添加下拉选项
currentText()获取选中项的文本
currentIndex()获取选中项的索引
itemText(index)获取索引为index的项的文本
setItemText(index,text)设置索引为index的项的文本
count()获取所有选项的数量
clear()删除所有选项

UI生成代码:

# Form implementation generated from reading ui file 'QComboBox下拉组合框控件.ui'
#
# Created by: PyQt6 UI code generator 6.4.2
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again.  Do not edit this file unless you know what you are doing.from PyQt6 import QtCore, QtGui, QtWidgetsclass Ui_Form(object):def setupUi(self, Form):Form.setObjectName("Form")Form.resize(400, 300)self.comboBox = QtWidgets.QComboBox(parent=Form)self.comboBox.setGeometry(QtCore.QRect(150, 60, 69, 22))self.comboBox.setFrame(False)self.comboBox.setObjectName("comboBox")self.retranslateUi(Form)QtCore.QMetaObject.connectSlotsByName(Form)def retranslateUi(self, Form):_translate = QtCore.QCoreApplication.translateForm.setWindowTitle(_translate("Form", "Form"))

常用方法测试代码:

"""python加载ui文件作者 : 小锋老师官网 : www.python222.com
"""
import sys
import timefrom PyQt6.QtGui import QValidator, QIntValidator, QIcon
from PyQt6.QtWidgets import QApplication, QLabel, QLineEdit, QTextEdit, QComboBox
from PyQt6 import uic, QtGuiif __name__ == '__main__':app = QApplication(sys.argv)ui = uic.loadUi("./QComboBox下拉组合框控件.ui")myComboBox: QComboBox = ui.comboBoxmyComboBox.addItem("足球")list = ["篮球", "乒乓球"]myComboBox.addItems(list)myComboBox.addItem(QIcon("other.png"), "其他")print(myComboBox.currentText(), myComboBox.currentIndex())print(myComboBox.itemText(2))myComboBox.setItemText(1, "篮球2")print(myComboBox.count())ui.show()sys.exit(app.exec())

运行输出:

足球 0
乒乓球
4

这篇关于PyQt6 QComboBox下拉组合框控件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/454253

相关文章

C#实现WinForm控件焦点的获取与失去

《C#实现WinForm控件焦点的获取与失去》在一个数据输入表单中,当用户从一个文本框切换到另一个文本框时,需要准确地判断焦点的转移,以便进行数据验证、提示信息显示等操作,本文将探讨Winform控件... 目录前言获取焦点改变TabIndex属性值调用Focus方法失去焦点总结最后前言在一个数据输入表单

el-select下拉选择缓存的实现

《el-select下拉选择缓存的实现》本文主要介绍了在使用el-select实现下拉选择缓存时遇到的问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录项目场景:问题描述解决方案:项目场景:从左侧列表中选取字段填入右侧下拉多选框,用户可以对右侧

element-ui下拉输入框+resetFields无法回显的问题解决

《element-ui下拉输入框+resetFields无法回显的问题解决》本文主要介绍了在使用ElementUI的下拉输入框时,点击重置按钮后输入框无法回显数据的问题,具有一定的参考价值,感兴趣的... 目录描述原因问题重现解决方案方法一方法二总结描述第一次进入页面,不做任何操作,点击重置按钮,再进行下

hdu4869(逆元+求组合数)

//输入n,m,n表示翻牌的次数,m表示牌的数目,求经过n次操作后共有几种状态#include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdlib.h>#includ

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

Go组合

摘要 golang并非完全面向对象的程序语言,为了实现面向对象的继承这一神奇的功能,golang允许struct间使用匿名引入的方式实现对象属性方法的组合 组合使用注意项 使用匿名引入的方式来组合其他struct 默认优先调用外层方法 可以指定匿名struct以调用内层方法 代码 package mainimport ("fmt")type People struct{}type Pe

小程序button控件上下边框的显示和隐藏

问题 想使用button自带的loading图标功能,但又不需要button显示边框线 button控件有一条淡灰色的边框,在控件上了样式 border:none; 无法让button边框隐藏 代码如下: <button class="btn">.btn{border:none; /*一般使用这个就是可以去掉边框了*/} 解决方案 发现button控件有一个伪元素(::after

MFC中Spin Control控件使用,同时数据在Edit Control中显示

实现mfc spin control 上下滚动,只需捕捉spin control 的 UDN_DELTAPOD 消息,如下:  OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult) {  LPNMUPDOWN pNMUpDown = reinterpret_cast(pNMHDR);  // TODO: 在此添加控件通知处理程序代码    if

MFC 控件重绘(2) NM_CUSTOMDRAW, WM_DRAWITEM, 虚函数DrawItem

控件重绘有三种方法: 1 设定界面属性 2 利用Windows的消息机制,通过Windows消息映射(Message Mapping)和反映射(Message Reflecting),在合适的时机修改控件的状态和行为。此方式涉及NM_CUSTOMDRAW和WM_DRAWITEM 3 利用虚函数机制,重载虚函数。即DrawItem虚函数。 对于NM_CUSTOMDRAW,某些支持此消息的控件

组合c(m,n)的计算方法

问题:求解组合数C(n,m),即从n个相同物品中取出m个的方案数,由于结果可能非常大,对结果模10007即可。       共四种方案。ps:注意使用限制。 方案1: 暴力求解,C(n,m)=n*(n-1)*...*(n-m+1)/m!,n<=15 ; int Combination(int n, int m) { const int M = 10007; int