让linux下的qt4设计器使用python3处理自定义小部件插件
我使用此脚本启动qt designer,使我的自定义小部件(在Python 3中)可见: 但看起来designer正在使用python 2.7来使用小部件插件:让linux下的qt4设计器使用python3处理自定义小部件插件,python,plugins,pyqt,pyqt4,qt-designer,Python,Plugins,Pyqt,Pyqt4,Qt Designer,我使用此脚本启动qt designer,使我的自定义小部件(在Python 3中)可见: 但看起来designer正在使用python 2.7来使用小部件插件: vic@ubuntu:~/wic$ python3 qt_designer.pyw vic@ubuntu:~/wic$ File "/home/vic/wic/wic/widgets/w_date_edit_plugin.py", line 63 app.exec() ^ SyntaxError: i
vic@ubuntu:~/wic$ python3 qt_designer.pyw
vic@ubuntu:~/wic$ File "/home/vic/wic/wic/widgets/w_date_edit_plugin.py", line 63
app.exec()
^
SyntaxError: invalid syntax
如何指导设计器使用Python 3而不是Python 2
我使用Kubuntu 11.10、KDE 4.7.2、python3.2和python2.7,看起来PyQt不允许并行安装处理自定义小部件的设计器插件(
libpythonplugin.so
)。因此,通常会有一个单独的插件链接到python2或python3,但不是两者都链接
看起来Kubuntu目前正在安装python2版本的插件(在我的linux系统上,情况正好相反)。如果您想要python3版本的插件,只需从源代码处编译一个替换
编辑
要编译替换软件,请首先确保已安装sip
软件包。我不是ubuntu方面的专家,但我认为您将需要pythonsipdev
和python3sipdev
软件包(当然还有任何依赖项)
接下来,下载与系统上安装的版本匹配的PyQt4源代码。我找到了一些ubuntu pyqt源代码包
现在将tarball,cd解压到生成的源目录中(对于Kubuntu 11.10,它看起来应该是PyQt-x11-gpl-4.8.5
),然后使用python3配置构建:
$ cd ~/tmp
$ tar -xf python-qt4_4.8.5.orig.tar.gz
$ cd PyQt-x11-gpl-4.8.5
$ /usr/bin/python3.2 configure.py -c -j 4
如果完成时没有错误,则构建它(但不要安装它):
使用上述配置选项,在我的旧i686-AMD64-X2-6000系统上编译pyqt大约需要5分钟。完成后,libpythonplugin.so
插件应位于PyQt-x11-gpl-4.8.5/designer
目录中
现在,您可以备份并删除现有插件(在我的系统上,它位于
/usr/lib/qt/plugins/designer
目录中),然后复制新插件。在我的Windows机器上,我必须将Python目录放入路径中,才能找到libpython.dll
。因此,我认为python版本没有硬编码到libpythonplugin.So
。你怎么认为?它可以通过一些路径调整来解决吗?看起来像是libpython2.7。所以被硬编码到libpythonplugin.so
。如何为python 3编译libpythonplugin
?我从哪里得到消息来源?@warvariuc。我已经编辑了我的答案,包括如何编译插件的说明。它工作了!更简单的是,我安装了PyQt-x11-gpl-4.8.6
,并将python3版本放入/usr/lib/x86\u 64-linux-gnu/qt4/plugins/designer/libpythonplugin.so
。我认为在为我的系统更新包时,包管理器会覆盖它。非常感谢你!
$ cd ~/tmp
$ tar -xf python-qt4_4.8.5.orig.tar.gz
$ cd PyQt-x11-gpl-4.8.5
$ /usr/bin/python3.2 configure.py -c -j 4
$ make