如何设置QComboBox的默认项

7 python indexing pyqt4 qcombobox

在我的函数中,我有一个空值的字典:

self.items = {
'Maya Executable': '',
'Render': '',
'Mayapy Interpreter': '',
'imgcvt': '',
'IMConvert': '',
}
Run Code Online (Sandbox Code Playgroud)

我应该如何设置"Maya Executable"(即第0个键)作为加载时选择的QComboBox的默认项?

我试过了:

self.appExeCB=QtGui.QComboBox()
self.appExeCB.setCurrentIndex(0)
self.appExeCB.addItems(self.items.keys())
Run Code Online (Sandbox Code Playgroud)

但是这没有设置默认值:-(

Yus*_*shi 8

Python 字典没有排序。self.items.keys()[0] 每次可能返回不同的结果。要解决您的问题,您应该先添加项目,然后将“Maya Executable”的索引从 self.items.keys() 传递到 self.appExeCB.setCurrentIndex:

self.appExeCB=QtGui.QComboBox()
self.appExeCB.addItems(self.items.keys())
self.appExeCB.setCurrentIndex(self.items.keys().index('Maya Executable'))
Run Code Online (Sandbox Code Playgroud)

请注意,这不会按照您在 self.items 中声明的顺序将 QComboBox 中的项目放入,因为如前所述,Python Dictionaries 未排序。