【发布时间】:2013-05-17 17:14:07
【问题描述】:
我有一个使用 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'es 的文本,以构建我稍后使用的点分隔字符串表示。 标记的“>>”行是问题发生的地方 - 突然,“x”对象永远不会是空字符串,就像使用 PySide 库时一样。但如果 self.combo[i] 为空,则它应该是空的。
我搜索了 SO 存档并找到了这个 answer 但无法使用它。 请告知如何解决此问题。
【问题讨论】:
标签: pyqt4 pyside qstring qcombobox