2023年10月

使用Qt开发UI,有一个工具是绕不开的,那就是QtDesigner。对于使用Python开发来说,我们需要把QtDesigner生产的.ui文件,转成对应的.py文件,才可以正常使用。(其实也有另一种方法是直接读取.ui文件,但这种方法的缺点是编程时没有代码补全。)如果涉及到资源文件.qrc,同样也需要转换成.py文件。

因此我们需要配置3个外部工具,分别是

  1. QtDesigner 用来编辑.ui文件
  2. UIC.ui文件转换为'py文件
  3. RCC.qrc文件转换为.py文件

省流版

新增外部工具

打开(或新建)一个工程,点文件->设置,打开设置界面,找到工具->外部工具,点+即可新增外部工具。按照以下图示创建3个外部工具。

新建外部工具

QtDesigner

QtDesigner

  • 程序路径

    C:\Users\username\AppData\Local\Programs\Python\Python310\Lib\site-packages\PySide6\designer.exe

    其中username为用户名,Python310为对应的Python版本,PySide6为对应的PySide或PyQt版本。此外,以上路径为Python的默认安装路径,如果你不是安装在默认路径,需要按实际情况修改。下同不复赘述。

  • 实参

    $FileName$
  • 工作目录

    $FileDir$

UIC

UIC

  • 程序路径

    C:\Users\username\AppData\Local\Programs\Python\Python310\Scripts\pyside6-uic.exe

    其中pyside6-uicpyside6为对应的PySide或PyQt版本,下同不复赘述。

  • 实参

    $FileName$ -o ui_$FileNameWithoutExtension$.py
  • 工作目录

    $FileDir$

RCC

RCC

  • 程序路径

    C:\Users\username\AppData\Local\Programs\Python\Python310\Scripts\pyside6-rcc.exe
  • 实参

    -o $FileNameWithoutExtension$_rc.py $FileName$
  • 工作目录

    $FileDir$

使用

QtDesigner

目前在PyCharm中无法直接新建.ui文件,只能手动打开QtDesigner新建.ui文件。
QtDesigner的目录具体参看上文QtDesigner的程序路径。此程序以后会经常使用,建议建立一个快捷方式。

生成.ui文件后,在.ui文件上右键,外部工具->QtDesigner,即可使用QtDesigner编辑。

编辑.UI文件

UIC

外部工具->UIC,即可把.ui文件转成.py文件。如mainwindow.ui会转为ui_mainwindow.py

RCC

外部工具->RCC,即可把.rcc文件转成.py文件。如icon.qrc会转为icon_rc.py

多了解点

外部工具

  • 名称:这个本身并没有什么特别支出,可按需任意取名,但考虑到实际使用体验,建议把UICRCC改个名字,方便操作时一眼认出。
  • 组:默认为外部工具,个人认为这也是最方便使用的。网上很多教程会让你把这几个外部工具列入二级分组,比如Qt,从组织整理上说,这种作法是对的,但如果你的开放环境只有这几个外部工具,其实没必要这样做,这样做会新增一个二级菜单,增加额外的操作。
  • 描述:相当于注释,可留空。
  • 程序:即要调用的外部程序所在的路径。
  • 实参:传入程序的参数,具体详见每个外部工具。
  • 工作目录:在哪个文件夹下调用该外部工具,具体详见每个外部工具。
  • 其他高级选项:保存默认即可(因为我也不懂)。

QtDesigner

如果使用命令行(或终端)调用该工具,完整命令为

PS D:\MyProject> C:\Users\username\AppData\Local\Programs\Python\Python310\Lib\site-packages\PySide6\designer.exe .\mainwindow.ui

运行以后,就会打开D:\MyProject下的mainwindow.ui文件。

实参mainwindow.ui,即当前文件名,可使用宏$FileName$获取。

工作目录D:\MyProject,即文件所在目录,可使用宏$FileDir$获取。网上很多教程会让你在这里使用$ProjectFileDir$,级项目所在目录。如果你的.ui文件是存在项目的根目录下,是可以正常运行的,因为此时项目目录就是文件所在目录。但如果不是,比如存放在src目录下,就会出错。

类似的宏还有很多,如有要全部记下来显然不现实,点击旁边的+按钮,即可在众多的宏中选择所需的宏。

选择宏

UIC

完整命令为

PS D:\MyProject> pyside6-uic .\mainwindow.ui -o ui_mainwindow.py

默认情况下,系统会把Python的第三方库加入path路径,所以在调用pyside6-uic.exe时无须填写冗长的完整路径,此外在Windows下,.exe也可以省略。

实参.\mainwindow.ui -o ui_mainwindow.py

其中mainwindow.ui为输入文件名,可用宏$FileName$获取。

新生成的文件名为ui_mainwindow.py,即ui_不含扩展名的文件名.py,其中不含扩展名的文件名可用宏$FileNameWithoutExtension$获取。

因此最后使用宏表示为$FileName$ -o ui_$FileNameWithoutExtension$.py

工作目录与上文一致,不再赘述。

RCC

完整命令为

PS D:\MyProject> pyside6-rcc -o icon_rc.py .\icon.qrc

请注意,实参部分,先传入的输出文件名icon_rc.py,再传入输入文件名icon.qrc,其他部分与前文的UIC内容是一样的道理,不再赘述。