Python框架下的qt设计之JSON格式化转换小程序

JSON转换小程序



代码展示:

主程序代码:

python 复制代码
from PyQt6.QtWidgets import (
    QApplication, QDialog, QMessageBox
)

import sys
import json

class 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,'信息提示','请输入内容')
                return

            try:
                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}')
                return
            QMessageBox.information(self,'信息提示','操作成功')

        return inner_format
if __name__ == '__main__':
    app = QApplication(sys.argv)
    myJsonFormatter = MyJsonFormatter()
    sys.exit(app.exec())

qt界面py代码

python 复制代码
# 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, QtWidgets


class 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.translate
        jsonFormatter.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内容"))

效果展示:

相关推荐
Chase_______7 小时前
【JAVA基础指南(一)】快速掌握基础语法
java·开发语言
俊俊谢7 小时前
【机器学习】python使用支持向量机解决兵王问题(基于libsvm库)
python·机器学习·支持向量机·svm·libsvm
走在路上的菜鸟7 小时前
Android学Dart学习笔记第二十节 类-枚举
android·笔记·学习·flutter
爱笑的眼睛117 小时前
MLflow Tracking API:超越实验记录,构建可复现的机器学习工作流
java·人工智能·python·ai
YuforiaCode7 小时前
黑马AI大模型神经网络与深度学习课程笔记(个人记录、仅供参考)
人工智能·笔记·深度学习
小白学大数据7 小时前
Python 爬虫如何分析并模拟 JS 动态请求
开发语言·javascript·爬虫·python
2501_915918417 小时前
iOS 项目中证书管理常见的协作问题
android·ios·小程序·https·uni-app·iphone·webview
八月ouc7 小时前
Python实战小游戏(一):基础计算器 和 猜数字
python·小游戏·猜数字·条件判断·基础计算器·控制流
秦少游在淮海7 小时前
网络缓冲区 · 通过读写偏移量维护数据区间的高效“零拷贝” Buffer 设计
linux·开发语言·网络·tcp协议·muduo·网络缓冲区
水煎包V:YEDIYYDS8887 小时前
QT 在 QML中 嵌入显示qwidget界面显示的两种方式,已在项目中验证
qt·qml·qt开发·qwidget