python - 将项目添加到 QcomboBox 而不更改当前选定的项目
问题描述
我想将项目添加到组合框对象中,但当前项目将更改为新添加的项目。
例子:
#comboBox have initial item "initial item"
comboBox.addItem("new added item1")
comboBox.addItem("new added item2")
现在,上面的示例将当前项目更改为"new added item2"
. 有没有办法"initial item"
在添加新项目时保留当前文本?
解决方案
您可以使用该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 文档了解更多信息。
推荐阅读
- r - 如何在R中删除带有事件的整个ID
- html - 如何从 ap:panel 中删除标题?
- azure - 如何将 Bot 框架编写器与 Azure 应用配置连接以从那里读取值
- android - 使用 Amazon Device Messaging 时生成错误:类必须扩展 android.app.Service [Instantiatable]
- mysql - 在mysql中将任何日期格式转换为YYYYmmdd
- python - RabbitMQ 未收到来自远程服务器的消息
- mysql - 多个 Typeorm 事务从不完成/出错也不运行
- asp.net - GCloud - 将 App Engine Flex 连接到其他项目中的 Cloud SQL
- excel - 仅汇总列中的唯一值
- html - 垂直堆叠元素(固定大小)