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

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

效果展示:

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python+requests+Pytest+logging+allure+pymysql框架详解

一、框架目录结构 1)tools目录用来放公共方法存储,如发送接口以及读取测试数据的方法,响应断言 数据库断言 前置sql等方法;2)datas目录用例存储接口用例的测试数据,我是用excel来存储的数据,文件数据 图片数据等;3)testcases目录用来存放测试用例,一个python文件对应…

基于深度学习的危险物品检测系统(网页版+YOLOv8/v7/v6/v5代码+训练数据集)

摘要:本文详细介绍基于YOLOv8/v7/v6/v5的危险物品检测技术。主要采用YOLOv8技术并整合了YOLOv7、YOLOv6、YOLOv5的算法,进行了细致的性能指标对比分析。博客详细介绍了国内外在危险物品检测方面的研究现状、数据集处理方法、算法原理、模型构建与训练代码…

使用 Docker Compose 部署邮件服务器

使用 Docker Compose 部署邮件服务器 很多时候为了方便, 我们都直接使用第三方邮箱进行收发邮件。 但第三方邮箱有些要求定期修改密码,有些限制发邮箱的次数, 对于一些个人和企业来说, 有自己的域名和服务器为什么不自己搭建一个邮…

【六 (2)机器学习-机器学习建模步骤/kaggle房价回归实战】

一、确定问题和目标: 1、业务需求分析: 与业务团队或相关利益方进行深入沟通,了解他们的需求和期望。 分析业务流程,找出可能的瓶颈、机会或挑战。 思考机器学习如何帮助解决这些问题或实现业务目标。 2、问题定义:…

论文阅读RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection

文章目录 RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection问题笛卡尔坐标结构图Meta-Kernel Convolution RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection 论文:https://arxiv.org/pdf/2103.10039.pdf 代码&…

元宇宙虚拟空间的场景构造(二)

前言 该文章主要讲元宇宙虚拟空间的场景构造,基本核心技术点,不多说,直接引入正题。 场景的构造 使用引入的天空模块 this.sky new Sky(this); 在Sky模块里,有设置对其中的阳光进行不同时间段的光线处理。而天空又是怎么样的…

c++20协程详解(一)

前言 本文是c协程第一篇,主要是让大家对协程的定义,以及协程的执行流有一个初步的认识,后面还会出两篇对协程的高阶封装。 在开始正式开始协程之前,请务必记住,c协程 不是挂起当前协程,转而执行其他协程&a…

【Vscode】无法将“python,pip,node,npm等”识别为cmdlet...问题

问题出现场景 新换个电脑,然后重新安装了软件,又复现一次又一次“老生常谈”的问题。 解决方法 网络答案吧五花八门,我采取一个我的场景解决可行的方案, 首先我的场景是,环境变量,配置路径都是没有问题…

STM32学习和实践笔记(4):分析和理解GPIO_InitTypeDef GPIO_InitStructure (c)

第二个成员变量是GPIOSpeed_TypeDef GPIO_Speed;也与int a一样同理。 GPIOSpeed_TypeDef是一个枚举类型,其定义如下: typedef enum { GPIO_Speed_10MHz 1, GPIO_Speed_2MHz, GPIO_Speed_50MHz }GPIOSpeed_TypeDef; #define IS_GPI…

【JavaEE初阶系列】——一万字带你了解 JUC常见类 以及 线程安全集合类(哈希表)

目录 🚩JUC(java.util.concurrent) 的常见类 🎈Callable 接口 🌈理解 Callable(相关面试题) 🌈理解 FutureTask 📝线程创建方式 🎈 ReentrantLock可重入锁 🌈ReentrantLock 优势&#x…

4.2学习总结

解题思路 遍历初始整数的全排列,然后计算每一个排列与原排列的的步数找到花费的最小值就行了 代码 #include <iostream> #include <cstdio> #include <fstream> #include <algorithm> #include <cmath> #include <deque> #include <…

PEFT-LISA

LISA是LoRA的简化版&#xff0c;但其抓住了LoRA微调的核心&#xff0c;即LoRA侧重更新LLM的底层embedding和顶层head。 根据上述现象&#xff0c;LISA提出两点改进&#xff1a; 始终更新LLM的底层embedding和顶层head随机更新中间层的hidden state 实验结果 显存占用 毕竟模型…