pyside6-uic生成py代碼中文為unicode(亂碼)的問題解決方案
前言
本來想用Java做客戶端,后來發(fā)現(xiàn)很多算法還是Python有現(xiàn)成的比較方便。
所以最終選擇了pyside6。但是用Designer(QT設(shè)計師)設(shè)計完后,生成的代碼中文部分顯示為unicode,也可以理解為亂碼。
就像這樣:self.pushButton.setText(QCoreApplication.translate("dialog", u"\u767b\u5f55", None))
雖然不影響最終展示,但作為強(qiáng)迫癥的我,必須解決?。?/p>
下面是解決方法:
1. 下載安裝ascii2uni
Mac用戶可使用homebrew安裝:brew install uni2ascii
(我是MacOS系統(tǒng))
其他用戶可去官網(wǎng)下載安裝: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
/Library/Frameworks/Python.framework/Versions/3.8/bin/pyside6-uic
是你的uic地址LoginWindow.ui
是你設(shè)計UI文件的地址ui_LoginWindow.py
是py文件輸出地址
以上三個是自定義的內(nèi)容,其他為固定命令。
但是!這樣每次都要輸入命令多麻煩啊!下面是在PyCharm中的配置
2. PyCharm配置
我們可以在PyCharm中添加外部工具,以方便我們每次進(jìn)行生成Python代碼。
這里有個大坑,我先說一下吧。
本來在PyCharm中添加外部工具配置一下命令,應(yīng)該就可以跟命令行執(zhí)行的效果一樣了。
- 程序:
/Library/Frameworks/Python.framework/Versions/3.8/bin/pyside6-uic
- 實參:
$FileName$ | ascii2uni -a U > UI_$FileNameWithoutExtension$.py
- 工作目錄:
$FileDir$
但是!but!!!
我不知道PyCharm怎么回事,他最終執(zhí)行的命令
是:/Library/Frameworks/Python.framework/Versions/3.8/bin/pyside6-uic LoginWindow.ui "|" ascii2uni -a U > ui_LoginWindow.py
| 被 雙引號包裹了。導(dǎo)致生產(chǎn)的代碼還是中文亂碼!?。?!
由于我不知道PyCharm的什么原因,最終我只能通過shell腳本的方式來解決這個問題:
1. 在某個你能找到的目錄新建一個.sh文件
我懶省事直接在項目目錄建了一個,大家不要學(xué)我。
2. 腳本內(nèi)容
#!/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"
更改剛剛創(chuàng)建的外部工具配置
程序:/Users/localhost/develop/PycharmProjects/sd-client-3/pyuic.sh
實參:/Library/Frameworks/Python.framework/Versions/3.8/bin/pyside6-uic $FileName$ $FileNameWithoutExtension$.py
工作目錄:$FileDir$
這里的三個配置需要根據(jù)你的實際目錄去更改,不要照著我的抄!
3. 解決前后對比
解決前
解決后:
以上就是pyside6-uic生成py代碼中文為unicode(亂碼)的問題解決方案的詳細(xì)內(nèi)容,更多關(guān)于pyside6-uic生成py unicode亂碼的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
利用Chatgpt開發(fā)一款加減乘除計算器(Python代碼實現(xiàn))
這篇文章主要為大家詳細(xì)介紹了如何利用Chatgpt開發(fā)一款加減乘除計算器(用Python代碼實現(xiàn)),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-02-02Python如何使用struct.unpack處理二進(jìn)制文件
這篇文章主要介紹了Python如何使用struct.unpack處理二進(jìn)制文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02