PyQt4.QtCore.QString (u '') не сериализуем в формате JSON (с использованием python 2.7 и конструктора pyqt4) - PullRequest
0 голосов
/ 04 декабря 2018

Я использую формат json с моим кодом Python, и у меня есть раздел ввода пользователя, который будет принимать целое число mno как ввод, и при нажатии кнопки 1 он должен показывать эти входные данные, но показывая ошибку "PyQt4.QtCore.QString (u '') не поддерживает сериализацию в формате JSON "Так что, пожалуйста, дайте мне знать, что я делаю неправильно.

from PyQt4 import QtCore, QtGui
import sys
from functools import partial
import  json

data_packet={ "source":0 ,"destination":0, "plate_no": 0, "vehicle_type": { } }
Dest=0

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)

class Ui_GUI(object):
    def __init__(self):         
        app = QtGui.QApplication(sys.argv)
        self.GUI = QtGui.QWidget() 
        self.setupUi(self.GUI)
        self.GUI.show()
        sys.exit(app.exec_())

    def setupUi(self, GUI):
        GUI.setObjectName(_fromUtf8("GUI"))
        GUI.resize(300, 200)
        self.lineEdit = QtGui.QLineEdit(GUI)
        #self.lineEdit_DronesDestination.setValidator(QtGui.QIntValidator())
        #self.lineEdit_DronesDestination.setEnabled(True)
        self.lineEdit.setGeometry(QtCore.QRect(50, 50, 51, 31))
        #self.lineEdit_DronesDestination.setValidator(_fromUtf8(""))
        self.lineEdit.setText(_fromUtf8(""))
        self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
        self.input=self.lineEdit.text()

        self.pushButton_1 = QtGui.QPushButton(GUI)
        self.pushButton_1.setGeometry(QtCore.QRect(50, 100, 71, 31))
        self.pushButton_1.setObjectName(_fromUtf8("pushButton_1"))
        self.pushButton_1.clicked.connect(partial(self.function,self.input))

        self.retranslateUi(GUI)
        QtCore.QMetaObject.connectSlotsByName(GUI)

    def retranslateUi(self, GUI):
        GUI.setWindowTitle(_translate("GUI", "GUI", None))
        self.pushButton_1.setText(_translate("GUI", "button1", None))

    def function(self,Dest):
        DEST=Dest
        print(Dest)
        print("Hello")
        data_packet['source']=1
        data_packet['destination']=DEST
        data_packet['plate_no']=6
        data_packet['vehicle_type']= { "car":"BMW" } 
        data = json.dumps(data_packet)
        #ws.send(data)
        print(data) 


ui=Ui_GUI()
...