def q_loads(src): def try_getqbytearray(v): if isinstance(v, QByteArray): return v.data() return v try: if isinstance(src, str): src = QByteArray(src.encode()) elif isinstance(src, (list, tuple)): src = QByteArray(bytes(src)) else: src = QByteArray(src) dst = QVariant() dll.loads(sip.unwrapinstance(dst), sip.unwrapinstance(src), False) # dll.dumps(shiboken2.getCppPointer(dst)[0], shiboken2.getCppPointer(src)[0]) value = dst.value() if isinstance(value, str): value = value.encode() if isinstance(value, list): value = [try_getqbytearray(v) for v in value] return value except Exception as e: print('q_loads error:', e) raise ValueError
def on_buttonSend_clicked(self): # 发送消息按钮 if not self._serial.isOpen(): print('串口未连接') return text = self.plainTextEdit.toPlainText() if not text: return text = QByteArray(text.encode('gb2312')) # emmm windows 测试的工具貌似是这个编码 if self.checkBoxHexSend.isChecked(): # 如果勾选了hex发送 text = text.toHex() # 发送数据 print('发送数据:', text) self._serial.write(text)
def on_send_button_clicked(self): # 发送消息按钮 if not self.serial.isOpen(): print('串口未连接') return text = self.send_edit.toPlainText() if not text: return text = QByteArray(text.encode('gb2312')) if self.hex_send_check.isChecked(): # 如果勾选了hex发送 text = text.toHex() # 发送数据 print('发送数据', text) self.serial.write(text)