JSON转换小程序
代码展示:
主程序代码:
from PyQt6.QtWidgets import (QApplication, QDialog, QMessageBox
)import sys
import jsonclass MyJsonFormatter(jsonui.Ui_jsonFormatter,QDialog): # jsonui是我qt界面py文件名def __init__(self):super().__init__()self.setupUi(self)self.show()self.pushButton_format.clicked.connect(self.do_format_json('format'))self.pushButton_unformat.clicked.connect(self.do_format_json('unformat'))self.pushButton_copyjson.clicked.connect(self.do_copy_json)def do_copy_json(self):board = QApplication.clipboard()board.setText(self.plainTextEdit_json.toPlainText())QMessageBox.information(self,'信息提示','复制成功')def do_format_json(self,type):def inner_format():json_cont = self.plainTextEdit_json.toPlainText()if not json_cont:QMessageBox.warning(self,'信息提示','请输入内容')returntry:if type == 'format':new_cont = json.dumps(json.loads(json_cont),indent=4,ensure_ascii=False)else:new_cont = json.dumps(json.loads(json_cont),ensure_ascii=False)self.plainTextEdit_json.setPlainText(new_cont)except Exception as e:QMessageBox.warning(self, '信息提示', f'JSON文本有问题,加载报错:{e}')returnQMessageBox.information(self,'信息提示','操作成功')return inner_format
if __name__ == '__main__':app = QApplication(sys.argv)myJsonFormatter = MyJsonFormatter()sys.exit(app.exec())
qt界面py代码
# Form implementation generated from reading ui file 'json.ui'
#
# Created by: PyQt6 UI code generator 6.4.2
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again. Do not edit this file unless you know what you are doing.from PyQt6 import QtCore, QtGui, QtWidgetsclass Ui_jsonFormatter(object):def setupUi(self, jsonFormatter):jsonFormatter.setObjectName("jsonFormatter")jsonFormatter.resize(523, 498)self.verticalLayout = QtWidgets.QVBoxLayout(jsonFormatter)self.verticalLayout.setObjectName("verticalLayout")self.label = QtWidgets.QLabel(parent=jsonFormatter)font = QtGui.QFont()font.setPointSize(10)self.label.setFont(font)self.label.setObjectName("label")self.verticalLayout.addWidget(self.label)self.plainTextEdit_json = QtWidgets.QPlainTextEdit(parent=jsonFormatter)self.plainTextEdit_json.setObjectName("plainTextEdit_json")self.verticalLayout.addWidget(self.plainTextEdit_json)self.horizontalLayout = QtWidgets.QHBoxLayout()self.horizontalLayout.setObjectName("horizontalLayout")self.pushButton_format = QtWidgets.QPushButton(parent=jsonFormatter)self.pushButton_format.setObjectName("pushButton_format")self.horizontalLayout.addWidget(self.pushButton_format)self.pushButton_unformat = QtWidgets.QPushButton(parent=jsonFormatter)self.pushButton_unformat.setObjectName("pushButton_unformat")self.horizontalLayout.addWidget(self.pushButton_unformat)self.verticalLayout.addLayout(self.horizontalLayout)self.pushButton_copyjson = QtWidgets.QPushButton(parent=jsonFormatter)self.pushButton_copyjson.setObjectName("pushButton_copyjson")self.verticalLayout.addWidget(self.pushButton_copyjson)self.retranslateUi(jsonFormatter)QtCore.QMetaObject.connectSlotsByName(jsonFormatter)def retranslateUi(self, jsonFormatter):_translate = QtCore.QCoreApplication.translatejsonFormatter.setWindowTitle(_translate("jsonFormatter", "json格式化小工具"))self.label.setText(_translate("jsonFormatter", "请输入粘贴JSON文本"))self.pushButton_format.setText(_translate("jsonFormatter", "格式化JSON"))self.pushButton_unformat.setText(_translate("jsonFormatter", "反格式化JSON"))self.pushButton_copyjson.setText(_translate("jsonFormatter", "复制JSON内容"))
效果展示: