首页 > 解决方案 > 将项目添加到 QcomboBox 而不更改当前选定的项目

问题描述

我想将项目添加到组合框对象中,但当前项目将更改为新添加的项目。

例子:

#comboBox have initial item "initial item"
comboBox.addItem("new added item1")
comboBox.addItem("new added item2")

现在,上面的示例将当前项目更改为"new added item2". 有没有办法"initial item"在添加新项目时保留当前文本?

标签: pythonpython-3.xpyqtpyqt5

解决方案


您可以使用该insertItem()方法并指定项目的位置:

import sys

from PyQt5.QtWidgets import QDialog, QApplication, QComboBox, QGridLayout


class MainWindow(QDialog):
    def __init__(self):
        super().__init__()
        comboBox = QComboBox()
        comboBox.addItem('first item')
        comboBox.insertItem(1, 'second item')
        lay = QGridLayout(self)
        lay.addWidget(comboBox)
        self.setLayout(lay)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    GUI = MainWindow()
    GUI.show()
    sys.exit(app.exec_())

如果你想一次添加多个项目,你可以简单地使用:

comboBox.addItems(['first item', 'second item'])

查看QComboBox 文档了解更多信息。


推荐阅读