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

JSON转换小程序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码展示:

主程序代码:

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代码

# 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内容"))

效果展示:

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/511163.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Github 2024-04-02Python开源项目日报 Top10

根据Github Trendings的统计,今日(2024-04-02统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目10系统设计指南 创建周期:2507 天开发语言:Python协议类型:OtherStar数量:241693 个Fork数量:42010 次关注人数:241693 人贡献…

提升常州小程序软件开发的搜索排名:关键步骤解析

在移动互联网的浪潮中,小程序作为连接用户与服务的桥梁,其重要性日益凸显。对于常州的小程序软件开发企业来说,如何让自己的产品在浩如烟海的互联网信息中脱颖而出,提升搜索排名,成为了亟待解决的问题。本文将为您解析…

【Qt 学习笔记】如何在Qt中打印日志 | qDebug的使用 | Assistant的使用

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 如何在Qt中打印日志 | qDebug的使用 文章编号:Qt 学习笔记…

云计算对象存储服务

对象存储服务(OSS)中的存储桶(Bucket)叫做‘OBS桶 存储桶(Bucket):存储桶式对象存储服务中用于存储对象的基本容器,类似于文件系统中的文件夹。每个存储桶具有唯一的名称,并且可以在桶中存储任…

Databend 开源周报第 138 期

Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 支持多表插入 …

mac 切换 jdk

查看 mac 上都有哪些版本 /usr/libexec/java_home -V看准版本切换 按前缀切换 比如 export JAVA_HOME/usr/libexec/java_home -v 1.8这样会随机一个 1.8 的 如果想再确定一个比如 openjdk export JAVA_HOME/usr/libexec/java_home -v 1.8.0_292这个方式是临时的&#xff0c…

Spark-Scala语言实战(10)

在之前的文章中,我们学习了如何在spark中使用RDD的filter,distinct,intersection三种方法。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢。 Spark-…

【嵌入式硬件】光耦

1.光耦作用 光耦一般用于信号的隔离。当两个电路的电源参考点不相关时,使用光耦可以保证在两边不共地的情况下,完成信号的传输。 2.光耦原理 光耦的原理图如下所示,其内部可以看做一个特殊的“三极管”; 一般的三极管是通过基极B和发射极E间的电流,去控制集电极C和发射极…

【2023】kafka原生以及配合springboot的使用(Kafka-3)

💻目录 前言 一、依赖二、原生使用kafka1、发送消息1.1、生产者同步发送消息1.2、生产者异步发送消息1.3、常用配置: 2、接收消息2.1、关于消费者的自动提交和手动提交2.2、长轮训poll消息2.3、消费者的健康状态检查2.4、指定分区和偏移量,时…

Java基础知识总结(第八篇):集合:Collection(List、Set)、Map、Collections 工具类

声明: 1. 本文根据韩顺平老师教学视频自行整理,以便记忆 2. 若有错误不当之处, 请指出 系列文章目录 Java基础知识总结(第一篇):基础语法 Java基础知识总结(第二篇)&#x…

obs直播推流 + ffmpeg参数

OBS 启动参数设为 --startstreaming , 可以让它启动后自动开始直播 对应ffmpeg参数: echo off :loop ffmpeg -re -i a.mp4 -r 24 -c:v libx264 -preset ultrafast -profile:v baseline -g 24 -keyint_min 24 -x264-params nal-hrdcbr -b:v 2500k -minr…

用于HUD平视显示器的控制芯片:S2D13V40

一款利用汽车抬头显示技术用于HUD平视显示器的控制芯片:S2D13V40。HUD的全称是Head Up Display,即平视显示器,以前应用于军用飞机上,旨在降低飞行员需要低头查看仪表的频率。起初,HUD通过光学原理,将驾驶相关的信息投射…

浅谈对化工厂内35kV及以下变电所的综合自动化

摘要:35kV变电站综合自动化系统的设计,主要遵循电网调度自动化的整体需要,其配置、功能要满足电网安全、经济、信息分层传输、资源共享等要求。本文以35kV及以下变电站自动化系统的设计为指导思想,对设计工作进行相关讨论。 安科…

Flutter 开发学习笔记(3):第三方UI库的引入

文章目录 前言初始化程序Icon导入如何导入 Toast消息提示框引入简单封装简单使用 Charts图表导入新建pages文件夹存放page简单代码实现效果 总结 前言 Flutter已经发布了有10年了,生态也算比较完善了。用于安卓程序开发应该是非常的方便。我们这里就接入一些简单的…

人工智能+的广泛应用,已渗透到生活的方方面面

引言 随着科技的不断进步和人工智能技术的快速发展,我们正处于一个人工智能时代。人工智能不仅仅是一种技术,更是一种革命性的变革力量,它正在以前所未有的方式改变着我们的生活和工作方式。 人工智能(AI)指的是人工…

HBase详解(1)

HBase 简介 概述 HBase是Yahoo!公司开发的后来贡献给了Apache的一套开源的、分布式的、可扩展的、基于Hadoop的非关系型数据库(Non-Relational Database),因此HBase并不支持SQL(几乎所有的非关系型数据库都不支持SQL),而是提供了一套单独的命令和API操…

海豚调度任务类型Apache SeaTunnel部署指南

Apache DolphinScheduler已支持Apache SeaTunnel任务类型,本文介绍了SeaTunnel任务类型如何创建,任务参数,以及任务样例。 一、Apache SeaTunnel SeaTunnel 任务类型,用于创建并执行 SeaTunnel 类型任务。worker 执行该任务的时…

Unity类银河恶魔城学习记录12-1 p123 UI menu源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili UI.cs using System.Collections; using System.Collections.Generic; usin…

文献速递:深度学习胰腺癌诊断--深度学习算法用于从疾病轨迹预测胰腺癌风险

文献速递:深度学习胰腺癌诊断--深度学习算法用于从疾病轨迹预测胰腺癌风险 麦田医学 美好事物中转站 2024-04-02 14:36 Title 题目 A deep learning algorithm to predict risk of pancreatic cancer from disease trajectories 深度学习算法用于从疾病轨迹预测…

最新AI工具系统ChatGPT网站运营源码SparkAi系统V6.0版本,GPTs应用、AI绘画、AI换脸、垫图混图、Suno-v3-AI音乐生成大模型全支持

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧。已支持GPT…