http://www.52ij.com/jishu/426.html
python关于pyQt Designer代码生成失败解决方法(非重装python)。
进入正题,很遗憾我是一个木有艺术细胞的人,用python代码写GUI,效果惨不忍睹,为了更具说服力,再把上次做的那个界面拿出来恶心大家一下.
![,用python代码写GUI](https://i-blog.csdnimg.cn/blog_migrate/caaf254a6d8a68b6e945aba188dbb446.png)
哈哈,是不是很有减肥效果啊.
当然啦,如果先画个草图,各种布局用上,可能会好看一些,不过时间没有必要浪费在这里啊.一直挺喜欢MFC,C#,VB里的那种控件拖拽的可视化界面编程.所以,决定改良一下GUI的时候,我第一反应就是找类似的东西.
找了一下,python的相关工具还真不少.最后我选中了pyQt,因为第一感觉,它用起来比较方便.
顺便说一下,搜类似的工具下载,最好google或者百度"软件名[空格]download",因为这种东西一般在国外网站,加一个英文download,一般就会把官网排在第一个,尤其是用百度的时候,不然你懂的,哈哈
安装就不说了,和py2exe,ActivePython,pygame等一样,它会自动找到对应版本的python安装目录,把自己装进去.
装好之后启动Designer,新建.是以.ui为后缀的文件.
![新建.是以.ui为后缀的文件](https://i-blog.csdnimg.cn/blog_migrate/5a306c3e0e2e3102ca18407e27736f80.png)
各种拖拽之后.最重要的步骤来了,要让它按照我们设计的界面自动生成该界面的.py代码, 这样我们才能把它移植到自己的项目中用.
![要让它按照我们设计的界面自动生成该界面的.py代码](https://i-blog.csdnimg.cn/blog_migrate/86525db3a30aa270dbd45385e9850dad.png)
结果悲剧了...代码生成失败
![代码生成失败](https://i-blog.csdnimg.cn/blog_migrate/c9da7057f397cfe119a73a44993a422e.png)
检查看一下,上面的目录下有东西,说明装好了.
那悲剧是怎么发生的呢,网上问这个的不多,不过答案很明确,是因为当初装python的时候,就出问题了----路径里有空格.
这个,让我怎么说呢,哭笑不得,给自己埋了这么大个雷.不过也算是长了教训,在准备学习一个东西的时候,先要进行全局了解.
好吧,既然出了问题,就要面对.最直接的莫过于重装python,然后重装pyQt.有没有别的解决办法呢.
我想,[生成代码] 这个功能一定有与之对应的命令,那么在命令行就应该可以单独执行这个命令,既然是因为有路径有空格产生错误,我从命令行cd到命令所在的目录,传入所需的命令行参数再执行它,应该就行了吧...
功夫不负有心人,找到了生成代码命令的格式 pyuic -o xxx.py yyy.ui ,就是pyuic -o [想输出的.py文件] [设计好的.ui文件]
试试又不会掉一块肉,呵呵.
于是我先找到了.ui文件的目录 D:\Program Files\Python2.7\Lib\site-packages\PyQt4,其实就是错误提示的上级目录(我是按默认路径保存的).
![ui文件的目录](https://i-blog.csdnimg.cn/blog_migrate/f918e000cc9bcb1b307dd387845be025.png)
再找到了要cd到的目录D:\Program Files\Python2.7\Lib\site-packages\PyQt4\uic,嗯嗯,确实有pyuic这个命令
![pyuic这个命令](https://i-blog.csdnimg.cn/blog_migrate/ae6c3a62e9ee2077568fb03a0831d696.png)
试试吧,要注意的是,我没有指定guitest.py的输出目录,所以输出的文件会和上面的pyuic.py在一个目录.另外ui文件的路径有空格,需要加引号.
![另外ui文件的路径有空格,需要加引号](https://i-blog.csdnimg.cn/blog_migrate/b25ced9e3a0486450a3bb736f0359154.png)
执行完毕,在命令文件的同目录下,果然出现了一个guitest.py
![果然出现了一个guitest.py](https://i-blog.csdnimg.cn/blog_migrate/cc7e204348daf3c8a442756555178b83.png)
打开看看,嗯嗯,搞定了.
![运行成功](https://i-blog.csdnimg.cn/blog_migrate/d10fc9cf1ba2ca87194ee675e43089b8.png)
当然啦,工具生成的代码,想揉到自己的项目中,还需要做一些工作,局部也需要一些修改,不过整体的工作已经做好了.具体怎么改,不是这篇的主题,找机会再说.