2011-02-18 66 views
7

我非常喜欢Windows上的Qt Designer,它为我制作了Python应用程序(使用PyQt4)的GUI,并试图将它安装到我的Mac上(OSX 10.6.6下)。用于OSX上PyQt的Qt Designer 10.6

此时,我已经成功安装了SIP,Qt4和PyQt4。

PyQt二进制安装程序(用于Windows)包括一个与PyQt一起使用的Qt Designer版本。在OSX上,没有二进制安装程序,只有源代码。所以没有Qt设计师。

Qt网站提供Qt Creator作为下载,但据我所知,它要求您使用C/C++编写代码。

有没有办法让Qt Creator与PyQt一起工作?还是有另一个PyQt的GUI设计器可以在Mac上使用?

谢谢! -Wesley

回答

11

如果你已经安装了Qt4,那么你有Qt Designer。如果您使用qt.nokia.com上的安装程序,它应该位于/ Developer/Applications/Qt中。

Qt Designer本身在PyQt中工作得很好。 Qt设计者只是吐出描述UI结构的XML。如果您在C++中使用标准Qt,则必须运行uic工具以从.ui文件生成C++。同样,使用PyQt4,您必须在生成的.ui文件上运行pyuic4以从中创建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产生的翻译。

+2

感谢您的回复,格兰特。我已经从诺基亚网站下载了Qt4安装程序,它包含了Qt构造函数。但据我所知,没有Qt构造函数的版本可以与PyQt一起使用,而不是C/C++。 Windows yQt安装程序包含一个与PyQt一起使用的Qt Designer版本,但在Mac上安装PyQt只有源代码。在这个源代码中,没有用于PyQt的Qt Designer。 -W – Wesley 2011-02-21 01:47:15