我什么时候做
resos = [_ui.ComboBox.itemText(i) for i in range(_ui.ComboBox.count())]
它给我的清单
[PyQt4.QtCore.QString(u'1280x720 from 1.316'),
PyQt4.QtCore.QString(u'1920x1080 from 1.316'),]
如何覆盖ComboBox的itemText方法,使其仅返回python字符串?而不是在上面的列表理解中进行字符串转换!
最佳答案
您可以将QComboBox
子类化:
class MyComboBox(QtGui.QComboBox):
def itemText(self, index):
return str(super(MyComboBox, self).itemText(index))
但是请注意,如果您的组合框包含非Ascii字符,则可能会遇到麻烦。
或者,您可以尝试修补猴子,但这很丑陋:
def foo(combo):
def wrapper(index):
return str(QtGui.QComboBox.itemText(combo, index))
return wrapper
_ui.ComboBox.itemText = foo(_ui.ComboBox)
关于python - 如何重写Pyqt组合框ItemText方法,以便它返回默认的python字符串而不是QString?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30047328/