gpt4 book ai didi

python - 如何在 PyQt/PySide 中将项目添加到 QComboBox

转载 作者:IT老高 更新时间:2023-10-28 20:44:46 29 4
gpt4 key购买 nike

我需要一些帮助来添加一些项目到 QComboBox。所以我有两个组合框,一个根据所选项目填充另一个。

我的问题是,将 additem 用于新项目,它可以工作,但如果我为组合框选择另一个选项,它会添加新项目,但以前的项目已经消失 - 而且有新项目下方的空白项目。

我以为每次我从第一个组合框中选择一个新选项来清除第二个组合框的内容。所以我在第二个中使用了 clear() - 但它不起作用。

我是这么想的:

self.comboBox_2.clear()
for index,i in enumerate(list1):
self.comboBox_2.addItem(_fromUtf8(""))
self.comboBox_2.setItemText(index+2, QApplication.translate("Dialog", i, None, QApplication.UnicodeUTF8))

以上是当第一个combobox改变时执行的函数的一部分。

最佳答案

假设 list1 是一个字符串列表,那么您可以简单地使用 addItems 一次性添加它们。方法:

self.comboBox_2.clear()
self.comboBox_2.addItems(list1)

请注意,您可能在示例中以错误的方式使用了 QApplication.translate。如果您想让 list1 中的字符串可以翻译成不同的语言,您应该在 create 列表时这样做,并使用 字符串字面量.

例如:

list1 = [
self.tr('First Item'),
self.tr('Second Item'),
self.tr('Third Item'),
]

另请注意,_fromUtf8 函数只有在您的代码中使用包含非 ascii 字符的字符串文字时才真正有用 - 否则,它基本上是无操作的。

编辑

如果您的列表包含像素图和文本的元组,那么您可以使用以下内容:

self.comboBox_2.clear()
for pixmap, text in list1:
self.comboBox_2.addItem(QIcon(pixmap), text)

关于python - 如何在 PyQt/PySide 中将项目添加到 QComboBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8421614/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com