我正在尝试在Python 3.4上使用PyQt文件,该文件最初针对Python 2.7。我没有安装2.7,但是我相信该代码本来可以工作。

我看到的错误是从strVal返回的QInputDialog.getItem上的错误:

import  random, sys, queue, serial, glob, os, csv, time
import  PyQt4.Qwt5     as Qwt
from    PyQt4.QtCore   import *
from    PyQt4.QtGui    import *

...

strVal , ok = QInputDialog.getItem(self, 'Select a port',
    'Serial port:', ports, 0, False)

if ok and not strVal.isEmpty():
    self.portname.setText(strVal)


从文档中,QInputDialog.getItem应该返回一个QString(不仅仅是一个字符串),并且QString对象具有属性.isEmpty()

由于我没有no .isEmpty()属性,因此是否不导入QString

最佳答案

返回类型是常规python字符串,而不是QString,因为pyqt4中也实现了“ API#2”(也适用于pyside)。由于空字符串被认为是虚假的,因此您可以

 if ok and strVal:
      self.portname.setText(strVal)

08-25 03:18