pyside6-uicが中国語のpyコードをunicodeとして生成してしまう問題(文字化け)を解決

序文

当初はクライアントとして Java を使用したいと考えていましたが、多くのアルゴリズムは Python で既製のものを用意したほうが便利であることが後でわかりました。

そこで最終的にpyside6を選択しました。しかし、デザイナー(QT Designer)でデザインすると、生成されたコードの中国語部分がUnicodeで表示され、これも文字化けとして理解できます。

このような:self.pushButton.setText(QCoreApplication.translate("dialog", u"\u767b\u5f55", None))

最終的なプレゼンテーションには影響しませんが、強迫性障害としては解決しなければなりません!

回避策は次のとおりです。

1.ascii2uniをダウンロードしてインストールします

Mac ユーザーは homebrew を使用してインストールできます: brew install uni2ascii
(私は MacOS システムです)

他のユーザーは公式 Web サイトにアクセスして、以下をダウンロードしてインストールできます。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.pypyファイルの出力アドレスです

上記3つはカスタマイズ内容、その他は固定コマンドです。
ここに画像の説明を挿入

しかし!毎回コマンドを入力するのは面倒!以下はPyCharmでの設定です

2.PyCharmの設定

外部ツールを PyCharm に追加して、毎回 Python コードを生成できるようにします。

ここには大きな落とし穴があるので、先に言っておきます。
本来、PyCharm でコマンドを構成する外部ツールを追加すると、コマンド ラインの実行と同じ効果が得られるはずです。

プログラム:/Library/Frameworks/Python.framework/Versions/3.8/bin/pyside6-uic
引数:$FileName$ | ascii2uni -a U > UI_$FileNameWithoutExtension$.py
作業ディレクトリ:$FileDir$
ここに画像の説明を挿入
しかし! しかし!!!
PyCharm に何が起こったのかはわかりませんが、彼が最終的に実行したコマンドは次のとおりです。/Library/Frameworks/Python.framework/Versions/3.8/bin/pyside6-uic LoginWindow.ui "|" ascii2uni -a U > ui_LoginWindow.py

| は二重引用符で囲まれます。本番につながるコードは相変わらず中国語文字化け!

(この問題を解決するために PyCharm の設定を変更する方法をご存知の場合は、メッセージを残してください。ありがとうございます!!)

PyCharm の何が問題なのかわからないため、この問題を解決するにはシェル スクリプトを使用するしかありません。

  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 つの構成は、実際のディレクトリに応じて変更する必要があります。私のものをコピーしないでください。
ここに画像の説明を挿入

3. 前後の比較を解く

決済前

ここに画像の説明を挿入

解決後:

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_52799373/article/details/132688102