OSX 10.6上的PyQt Qt Designer

7 投票
2 回答
13945 浏览
提问于 2025-04-16 12:04

我在Windows上用Qt Designer做Python应用的界面(用的是PyQt4)时特别喜欢,所以我决定在我的Mac上(OSX 10.6.6)也试着安装一下。

到目前为止,我已经成功安装了SIP、Qt4和PyQt4。

在Windows上,PyQt的安装包里有一个可以和PyQt一起用的Qt Designer,但在OSX上没有这样的安装包,只有源代码。所以我没法用Qt Designer。

Qt官网提供了Qt Creator可以下载,但我发现它好像只适合用C/C++写代码。

有没有办法让Qt Creator和PyQt一起用?或者有没有其他适合在Mac上用的PyQt图形界面设计工具?

谢谢!

- Wesley

2 个回答

1

看起来你在找这个:

https://build-system.fman.io/qt-designer-download

很简单:QT设计器是专门为Mac准备的,比原来的QT创作工具更轻便、更简单……而且只适合Python使用。

12

如果你安装了Qt4,那么你就有了Qt Designer。如果你是从qt.nokia.com下载的安装包,它应该在/Developer/Applications/Qt这个文件夹里。

Qt Designer和PyQt配合得很好。Qt Designer会生成描述用户界面结构的XML文件。如果你用的是标准的Qt和C++,你需要运行一个叫做uic的工具,把.ui文件转换成C++代码。同样的,使用PyQt4时,你需要运行pyuic4这个命令,把生成的.ui文件转换成Python代码。

如果你在寻找一个可以自动处理这些事情的完整IDE解决方案,我并不知道有这样的工具。我自己有一个叫build_helper.py的脚本,它会处理我所有的.ui文件,并把它们放到我正在开发的Python包的合适位置。我在运行主程序之前会先运行这个构建助手脚本,以确保生成的代码是最新的。

我所有的.ui文件都会放在项目根目录下的一个名为ui的子文件夹里。这个脚本会生成Python代码,并把它放到'myapp/ui/generated'这个文件夹里。

举个例子:

import os.path
from PyQt4 import uic

generated_ui_output = 'myapp/ui/generated'

def process_ui_files():
    ui_files = (glob.glob('ui/*.ui'),
                glob.glob('ui/Dialogs/*.ui'),
                glob.glob('ui/Widgets/*.ui')))
    for f in ui_files:
        out_filename = (
            os.path.join(
                generated_ui_output,
                os.path.splitext(
                    os.path.basename(f))[0].replace(' ', '')+'.py')
        )
        out_file = open(out_filename, 'w')
        uic.compileUi(f, out_file)
        out_file.close()

if __name__ == '__main__':
    process_ui_files()

我在这个脚本里还有一些其他的功能,比如运行pyrcc4来编译资源,以及pylupdate4lrelease来生成翻译。

撰写回答