QLineEdit.setText(QString):参数1具有意外类型'int'

时间:2014-08-24 19:26:32

标签: java python pyqt int

所以我制作了这个应该告诉你java版本的小程序,但我收到了这个错误:

  

QLineEdit.setText(QString):参数1具有意外类型'int'

尝试运行时

代码:

import sys
import os
from PyQt4 import QtGui
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *


class java(QtGui.QMainWindow):
    def s(self):
        g = os.system("java -version")
        self.version.setText(g)

    def __init__(self, parent=None):
        super(java, self).__init__(parent)

        self.setMinimumSize(201, 82)
        self.setMaximumSize(201, 82)

        self.version = QLineEdit(self)
        self.version.setMinimumSize(181, 21)
        self.version.setMaximumSize(181, 21)
        self.version.setGeometry(QRect(10 ,10, self.width(), self.height()))

        self.fetch = QPushButton(self)
        self.fetch.setMinimumSize(181, 23)
        self.fetch.setMaximumSize(181, 23)
        self.fetch.setGeometry(QRect(10, 50, self.width(), self.height()))
        self.fetch.setText("Fetch version")

        self.fetch.clicked.connect(self.s)

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    main = java()
    main.show()
    sys.exit(app.exec_())

1 个答案:

答案 0 :(得分:1)

问题在于您的方法s,其中您执行了os.system来电。

def s(self):
    g = os.system("java -version")
    self.version.setText(g)

此处的变量g存储TrueFalse,它是系统调用的输出,而不是java的版本

要捕获输出的版本,请使用子进程模块,如here

所述