当前位置:   article > 正文

PyQt6 QComboBox下拉组合框控件_pyqt6 combobox

pyqt6 combobox

​锋哥原创的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生成代码:

  1. # Form implementation generated from reading ui file 'QComboBox下拉组合框控件.ui'
  2. #
  3. # Created by: PyQt6 UI code generator 6.4.2
  4. #
  5. # WARNING: Any manual changes made to this file will be lost when pyuic6 is
  6. # run again. Do not edit this file unless you know what you are doing.
  7. from PyQt6 import QtCore, QtGui, QtWidgets
  8. class Ui_Form(object):
  9. def setupUi(self, Form):
  10. Form.setObjectName("Form")
  11. Form.resize(400, 300)
  12. self.comboBox = QtWidgets.QComboBox(parent=Form)
  13. self.comboBox.setGeometry(QtCore.QRect(150, 60, 69, 22))
  14. self.comboBox.setFrame(False)
  15. self.comboBox.setObjectName("comboBox")
  16. self.retranslateUi(Form)
  17. QtCore.QMetaObject.connectSlotsByName(Form)
  18. def retranslateUi(self, Form):
  19. _translate = QtCore.QCoreApplication.translate
  20. Form.setWindowTitle(_translate("Form", "Form"))

常用方法测试代码:

  1. """
  2. python加载ui文件
  3. 作者 : 小锋老师
  4. 官网 : www.python222.com
  5. """
  6. import sys
  7. import time
  8. from PyQt6.QtGui import QValidator, QIntValidator, QIcon
  9. from PyQt6.QtWidgets import QApplication, QLabel, QLineEdit, QTextEdit, QComboBox
  10. from PyQt6 import uic, QtGui
  11. if __name__ == '__main__':
  12. app = QApplication(sys.argv)
  13. ui = uic.loadUi("./QComboBox下拉组合框控件.ui")
  14. myComboBox: QComboBox = ui.comboBox
  15. myComboBox.addItem("足球")
  16. list = ["篮球", "乒乓球"]
  17. myComboBox.addItems(list)
  18. myComboBox.addItem(QIcon("other.png"), "其他")
  19. print(myComboBox.currentText(), myComboBox.currentIndex())
  20. print(myComboBox.itemText(2))
  21. myComboBox.setItemText(1, "篮球2")
  22. print(myComboBox.count())
  23. ui.show()
  24. sys.exit(app.exec())

运行输出:

  1. 足球 0
  2. 乒乓球
  3. 4

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号