序文
当初はクライアントとして 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
/Library/Frameworks/Python.framework/Versions/3.8/bin/pyside6-uic
あなたのuicアドレスはLoginWindow.ui
デザイン UI ファイルのアドレスですui_LoginWindow.py
pyファイルの出力アドレスです
上記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 の何が問題なのかわからないため、この問題を解決するにはシェル スクリプトを使用するしかありません。
- 見つけられるディレクトリに新しい .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"
- 作成したばかりの外部ツール構成を変更します
プログラム:/Users/localhost/develop/PycharmProjects/sd-client-3/pyuic.sh
引数:/Library/Frameworks/Python.framework/Versions/3.8/bin/pyside6-uic $FileName$ $FileNameWithoutExtension$.py
作業ディレクトリ:$FileDir$
ここでの 3 つの構成は、実際のディレクトリに応じて変更する必要があります。私のものをコピーしないでください。