这儿以PySide2为例,介绍designer.exe
、lingust.exe
、pyside2-lupdate.exe
、pyside2-uic.exe
和pyside2-rcc.exe
等工具的基本配置。
测试环境:PyCharm + PySide2(安装在虚拟环境下) + WIN10 x64
使用pip install PySide2
安装PySide2后,可以在/venv/site-packages/PySide2
、venv/Scripts
目录下找到designer.exe
、lingust.exe
、pyside2-lupdate.exe
、pyside2-uic.exe
和pyside2-rcc.exe
等文件。
下面介绍每个工具的配置方法:
首先打开PyCharm设置界面,选择Tools
->External Tools
,点击+
号,即可以自定义工具。如下图所示:
配置designer
designer.exe
用于设计界面,路径为/venv/Lib/site-packages/PySide2/designer.exe
。点击+
号,输入以下内容:
- Pragram:
$ProjectFileDir$/venv/Lib/site-packages/PySide2/designer.exe
- Arguments:
$FileNameWithoutExtension$.ui
- Working directory:
$FileDir$
配置designer
配置pyside2-uic.exe
pyside2-uic.exe
用于将*.ui文件转为Python代码,路径为venv/Scripts/pyside2-uic.exe
,可以通过-o FILE, --output=FILE
生成代码到指定文件中。配置内容如下:
- Pragram:
$PyInterpreterDirectory$/pyside2-uic.exe
- Arguments:
$FileNameWithoutExtension$.ui -o $FileNameWithoutExtension$.py
- Working directory:
$FileDir$
配置pyside2-uic
配置pyside2-rcc.exe
pyside2-rcc.exe
用于编译资源文件,路径为venv/Scripts/pyside2-rcc.exe
。具体参数为:
Usage
pyside2-rcc [options]
Options
-o file
Write output to file rather than stdout
-py2
Generate code for any Python v2.x version (default)
-py3
Generate code for any Python v3.x version
-name name
Create an external initialization function with name
-threshold level
Threshold to consider compressing files
-compress level
Compress input files by level
-root path
Prefix resource access path with root path
-no-compress
Disable all compression
-version
Display version
-help
Display this information
同样点击+
号,输入以下内容:
- Pragram:
$PyInterpreterDirectory$/pyside2-rcc.exe
- Arguments:
-py3 $FileNameWithoutExtension$.qrc -o $FileNameWithoutExtension$_rc.py
- Working directory:
$FileDir$
配置pyside2-rcc-py3
参数,可以改成$FileNameWithoutExtension$.qrc -o $FileNameWithoutExtension$_rc.py
即可。
配置pyside2-lupdate.exe
pyside2-lupdate.exe
用于从ui文件和Python源码中提取需要翻译的字符串,路径为venv/Scripts/pyside2-lupdate.exe
。可以通过-verbose
输出详细信息。同样点击+
号,输入以下内容:
- Pragram:
$PyInterpreterDirectory$/pyside2-lupdate.exe
- Arguments:
-verbose $FileNameWithoutExtension$.pro
- Working directory:
$FileDir$
配置pyside2-lupdate
注意这儿输入的是*.pro
文件,可以通过.pro文件指定源文件SOURCES
和国际化语言TRANSLATIONS
,基本格式如下:
CODECFORTR = UTF-8
CODECFORSRC = UTF-8
TRANSLATIONS = zh_CN.ts \
en_US.ts
SOURCES = ../../control/canvas.py \
../../control/rtcanvas.py \
输出:
Updating 'zh_CN.ts'...
Found 218 source texts (9 new and 209 already existing)
Kept 0 obsolete translations
Removed 9 obsolete untranslated entries
Updating 'en_US.ts'...
Found 218 source texts (9 new and 209 already existing)
Kept 9 obsolete translations
Removed 0 obsolete untranslated entries
另外,可以添加-noobsolete
参数删除所有过时的字符串。比如改成Arguments:-verbose -noobsolete $FileNameWithoutExtension$.pro
。
配置linguist.exe
linguist.exe
用于多语言翻译,输入文件为上一步生成的*.ts
文件,并可以发布为*.qm
文件,路径为/venv/site-packages/PySide2/linguist.exe
。配置内容如下:
- Pragram:
$ProjectFileDir$/venv/Lib/site-packages/PySide2/linguist.exe
- Arguments:
$FileNameWithoutExtension$.ts
- Working directory:
$FileDir$
配置linguist文件
>发布
,即可生成*.qm文件。
附QTranslator简单用法:
import sys
from PySide2.QtWidgets import QApplication
from PySide2.QtCore import QTranslator
app = QApplication(sys.argv)
translator = QTranslator()
translator.load(f":/language/resource/language/zh_CN.qm") # 从资源文件中加载
app.installTranslator(translator)
...
版权声明:本文为「txfly」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://www.jianshu.com/p/05b53ccacbf6