我有一个使用 PySide 的 python 脚本,它工作正常。但后来我想检查它是否适用于 PyQt4。在将导入字符串更改为 PyQt4 之后,事情就出错了。错误指向主题,如下:
File "./my_file.py", line 93, in showit
curr_query = '.'.join(curr_query)
TypeError: sequence item 0: expected string, QString found
从文档中我可以看到 PySide 主题方法返回“unicode”字符串,但 PyQt4 返回 QString 对象。使用str ()、str() 等似乎并没有完成这项工作。这是功能代码:
def showit(self, idx):
curr_query = []
for i in xrange(idx+1):
>> x = self.combo[i].currentText()
>> if x:
curr_query.append(x)
else:
break
curr_query = '.'.join(curr_query)
这会读取一组 QCombobox 的文本以构建我稍后使用的点分隔字符串表示。标记的“>>”行是问题发生的地方 - 突然,“x”对象永远不会是空字符串,就像使用 PySide 库时一样。但是如果 self.combo[i] 是空的,那么它应该是空的。
我搜索了 SO 存档并找到了这个答案,但无法使用它。请建议如何解决这个问题。