解决pyside6-uic生成py代码中文为unicode(乱码)的问题

2023-11-15

前言

本来想用Java做客户端,后来发现很多算法还是Python有现成的比较方便。

所以最终选择了pyside6。但是用Designer(QT设计师)设计完后,生成的代码中文部分显示为unicode,也可以理解为乱码。

就像这样:self.pushButton.setText(QCoreApplication.translate("dialog", u"\u767b\u5f55", None))

虽然不影响最终展示,但作为强迫症的我,必须解决!!

下面是解决方法:

1. 下载安装ascii2uni

Mac用户可使用homebrew安装:brew install uni2ascii
(我是MacOS系统)

其他用户可去官网下载安装:https://billposer.org/Software/uni2ascii.html#downloads

安装完以后使用以下类似命令即可生成正常的中文显示:

/Library/Frameworks/Python.framework/Versions/3.8/bin/pyside6-uic LoginWindow.ui | ascii2uni -a U > ui_LoginWindow.py 
  1. /Library/Frameworks/Python.framework/Versions/3.8/bin/pyside6-uic 是你的uic地址
  2. LoginWindow.ui 是你设计UI文件的地址
  3. ui_LoginWindow.py 是py文件输出地址

以上三个是自定义的内容,其他为固定命令。
在这里插入图片描述

但是!这样每次都要输入命令多麻烦啊!下面是在PyCharm中的配置

2. PyCharm配置

我们可以在PyCharm中添加外部工具,以方便我们每次进行生成Python代码。

这里有个大坑,我先说一下吧。
本来在PyCharm中添加外部工具配置一下命令,应该就可以跟命令行执行的效果一样了。

程序:/Library/Frameworks/Python.framework/Versions/3.8/bin/pyside6-uic
实参:$FileName$ | ascii2uni -a U > UI_$FileNameWithoutExtension$.py
工作目录:$FileDir$
在这里插入图片描述
但是!but!!!
我不知道PyCharm怎么回事,他最终执行的命令是:/Library/Frameworks/Python.framework/Versions/3.8/bin/pyside6-uic LoginWindow.ui "|" ascii2uni -a U > ui_LoginWindow.py

| 被 双引号包裹了。导致生产的代码还是中文乱码!!!!

(有知道怎么改PyCharm配置解决这个问题的朋友请留言谢谢!!)

由于我不知道PyCharm的什么原因,最终我只能通过shell脚本的方式来解决这个问题:

  1. 在某个你能找到的目录新建一个.sh文件

我懒省事直接在项目目录建了一个,大家不要学我。

在这里插入图片描述
2. 脚本内容

#!/bin/bash

if [ $# -ne 3 ]; then
    echo "用法: $0 <pyside6-uic路径> <输入UI文件> <输出PY文件>"
    exit 1
fi

pyside6_uic="$1"
input_ui="$2"
output_py="$3"

"$pyside6_uic" "$input_ui" | ascii2uni -a U > "$output_py"
  1. 更改刚刚创建的外部工具配置

程序:/Users/localhost/develop/PycharmProjects/sd-client-3/pyuic.sh
实参:/Library/Frameworks/Python.framework/Versions/3.8/bin/pyside6-uic $FileName$ $FileNameWithoutExtension$.py
工作目录:$FileDir$

这里的三个配置需要根据你的实际目录去更改,不要照着我的抄!
在这里插入图片描述

3. 解决前后对比

解决前

在这里插入图片描述

解决后:

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决pyside6-uic生成py代码中文为unicode(乱码)的问题 的相关文章

随机推荐

  • TypeError: expected Tensor as element 0 in argument 0, but got numpy.ndarray

    显而易见 是pytorch中的Tensor和numpy ndarry类型导致的问题 只需要进行array和tensor的转换就行 调用函数torch from numpy annotation 实现array转换tensor
  • 萤石智能猫眼质保

    总流程 1 官网 https www ys7 com loginRedirect 1 2 登录 3 进入售后界面 4 填写申请单 5 寄送 根据短信
  • 程序员面试大厂被拆台:干这么多年不懂设计模式谁会要

    正在敲代码的你 春节假期即将来临 复盘这1年 你印象最深刻的一件事是什么 有人在群里回答了一条扎心的答案 忙碌1年 每天996 回首2019除了加班再无成长可说 你以为只要把事情搞定了 成长是一件自然而然的事情 但是过段时间你发现之前犯过的
  • Java生成doc文档一(概念简介)

    在很多项目的实际工作中 后端可能需要将一些整合的数据输出成word pdf excel等形式的文档 最近我在项目也遇到这样的而需求 这里就记录下来是如何一步一步完成java后端生成doc文档的 由于现在word文档基本都是用到07以上 所以
  • 协程中的流

    协程中的异步流 基础 一 什么是异步流 可以连续返回多个值 与集合的区别 集合可以返回多个计算好的值 但是只能一次性返回 与Rxjava 的流是同一个概念 二 如何创建异步流 1 最基础的流构建器 flow flow 构建块中的代码可以挂起
  • Windows上发生异常时抓取dump

    文章目录 正文 RaiseException函数 捕获大部分崩溃 SetUnhandledExceptionFilter 那还有小部分呢 为什么调试器可以抓到所有崩溃 CRT C STL 系统API之间的关系 CRT中几个重要的函数 退出进
  • 学长告诉我,大厂MySQL都是通过SSH连接的

    大家好 我是咔咔 不期速成 日拱一卒 一 背景 之前待的几个公司 数据库 服务器权限都是给所有后端直接拉满的 但也会出现员工离职的情况 每次有人离职时都需要改数据库密码 服务器密码 每次密码修改后得告知所有开发修改本地密码 但这样的事情也不
  • 详解反调试技术

    反调试技术 恶意代码用它识别是否被调试 或者让调试器失效 恶意代码编写者意识到分析人员经常使用调试器来观察恶意代码的操作 因此他们使用反调试技术尽可能地延长恶意代码的分析时间 为了阻止调试器的分析 当恶意代码意识到自己被调试时 它们可能改变
  • xilinx mipi ip

    占位
  • JSP页面中Input输入框获取当前系统时间

    JSP页面中Input输入框获取当前系统时间 在input属性value中填写如下代码即可获取系统当前时间输入 value
  • switch游戏机小白初体验

    1 switch版本区别 lite 续航版与oled的区别 oled屏幕比续航版的大 续航版和oled版都可以连接电视或显示器 lite只能玩掌机 只喜欢玩掌机的可以选lite 更便宜 国行 港版 日版的区别 国行不能与全球玩家联机 不能买
  • warning: could not find UI helper ‘git-credential-manager-ui‘

    可以先试试别人的教程 58条消息 关于git 凭证存储 credential helper配置 解决 git pull push fetch remote not found的问题 DavidFFFFFF的博客 CSDN博客 我是因为换了电
  • Python pyinstaller打包exe最完整教程

    目录 1 简介 2 安装 3 原理和打包效果 3 1 原理概述 3 2 搜索模块 3 3 打包效果概述 3 4 打包成单个文件夹 优点 缺点 3 5 打包成单个exe 优点 缺点 4 打包 4 1 基本语法 4 2 参数总览 位置参数 可选
  • IDEA导入eclipse项目并部署运行完整步骤(转发)

    首先说明一下 idea里的project相当于eclipse里的workspace 而idea里的modules相当于eclipse里的project 1 File gt Import Project 在弹出的对话框里选择要导入的项目 2
  • IAR仿真确认延时程序时间的准确性

    单片机 程序经常会用到延时函数 毫秒延时或微秒延时函数 为了确认延时函数时间的准确性 以前经常是需要通过IO口输出波形来确认时间是否准确 最近发现了个更方便准确的方法 只需要通过IAR仿真软件即可准确知道延时函数的运行时间 1 首先在IAR
  • SQL 数据更新

    SQL 数据更新 数据更新有三种 插入 修改 删除 一 插入数据 插入元组 行 INSERT Into lt 表名 gt lt 属性列1 gt lt 属性列2 gt lt 属性列3 gt lt 属性列4 gt Values lt 常量1 g
  • 2022.7台式机装机指南(3060 + 12490F)

    文章目录 硬件购买 装机避坑 系统制作 系统激活 大学四年用的华硕飞行堡垒FX86 那时候的配置还可以 8代i7 1050ti 8G 256固态 1T机械 后来又买了一张内存条 扩到了16g 四年只出过2次故障 第一次蓝屏自己修好了 第二次
  • PDF Redactor - 涂黑屏蔽PDF文字让敏感内容不可读的软件工具

    PDF Redactor是一款Windows平台下的PDF小工具软件 旨在涂黑屏蔽或删除PDF文件中的敏感文本和图像以保护隐私 被屏蔽的内容不仅在PDF阅读器中无法查看 而且即使使用文本搜索功能也无法再找到这部分内容 这些内容将从PDF文件
  • python json.dumps中文乱码问题解决

    json dumps var ensure ascii False 并不能解决中文乱码的问题 json dumps在不同版本的Python下会有不同的表现 注意下面提到的中文乱码问题在Python3版本中不存在 注 下面的代码再python
  • 解决pyside6-uic生成py代码中文为unicode(乱码)的问题

    前言 本来想用Java做客户端 后来发现很多算法还是Python有现成的比较方便 所以最终选择了pyside6 但是用Designer QT设计师 设计完后 生成的代码中文部分显示为unicode 也可以理解为乱码 就像这样 self pu