本文介绍: 在添加项目之前调用函数时,将显示占位符文本,否则如果要显示占位符文本,则必须以编程方式调用 setCurrentIndex(-1)。可编辑设置setSizeAdjustPolicy()将输入内容插入组合框,是否可以组合框中插入重复项。如果将最大数设置为小于组合框中当前项目的数量,则额外项目将被截断。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、【readonlycount : const int

组合框中项目数。

2、【readonlycurrentData : 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, QtWidgets


class 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.translate
        Form.setWindowTitle(_translate("Form", "Form"))

常用方法测试代码

"""
    python加载ui文件
    作者 : 小锋老师
    官网 : www.python222.com
"""
import sys
import time

from PyQt6.QtGui import QValidator, QIntValidator, QIcon
from PyQt6.QtWidgets import QApplication, QLabel, QLineEdit, QTextEdit, QComboBox
from PyQt6 import uic, QtGui

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ui = uic.loadUi("./QComboBox下拉组合框控件.ui")
    myComboBox: QComboBox = ui.comboBox

    myComboBox.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

原文地址:https://blog.csdn.net/caoli201314/article/details/134764687

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_39046.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注