求教PyQT的QString不被basestring识别
之前写了一个串口的程序,用的是PySide,工作很正常。。
现在把它改成了PyQt4的:结果串口打不开了,经过跟踪找到了问题:
程序里有一条:
COM.port = self.cmbCOMM.currentText()
代码就是在这里异常的,进一步跟踪进入currentText函数发现了问题的根源,这里面有下面这样一句话:
if isinstance(port, basestring)
这一句的作用是检查port是不是str或unicode类型,可是我发现port的类型竟然是QString
界面是使用QDesigner设计的,之前用PySide没有问题,这说明PySide把下拉列表的元素类型设置成了str或unicode;而现在PyQt4却把他们的类型设置成QString
请问,这个问题有没有简单的解决办法啊???难道我又要再转回到PySide吗???
我觉得这一点PyQt没有PySide做的好,,既然是在Python环境下使用,应该尽量使用Python的类型才对啊,, PyQt?QString
[解决办法]
转换一下嘛,不知道这个有用不
str QString.__str__ (self)
unicode QString.__unicode__ (self)
[解决办法]
保持与Qt兼容,貌似所有的字符串都是QString