[PYTHON] 安装PyQt [一]
### Install ######
1. Install Python
$ python --version
$ 3.2.3
Has been installed already, so pass this step.
2. Install QT
qmake -v : OS crashed, and reboot;
## sudo apt-get install --yes qtdeclarative5-dev qtdeclarative5-qtquick2-plugin qt5-default qtbase5-private-dev
Install from offical page: (reg_1025@163.com @ Sammy_1009)
http://mirrors.ustc.edu.cn/qtproject/archive/online_installers/2.0/qt-unified-linux-x32-2.0.3-1-online.run
http://mirrors.ustc.edu.cn/qtproject/archive/online_installers/2.0/qt-unified-linux-x86-2.0.3-1-online.run
http://mirrors.ustc.edu.cn/qtproject/archive/online_installers/2.0/
./qt-unified-linux-x86-online.run
@ default qt version:
安装完Qt后,在某些Qt的命令行程序中是以文件 /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf 的配置为基准的,文件中默认使用qt4,如果需要配置为qt5,那么需要修改该文件,更改为qt5:
/usr/lib/x86_64-linux-gnu/qt5/bin
/usr/lib/x86_64-linux-gnu
@./Tools/QtCreator/bin/qtcreator
运行 qt creator
3. Install pyQT
a) download from: https://sourceforge.net/projects/pythonqt/
pyQt does not include a copy of Qt. You must obtain a correctly licensed copy of Qt yourself.
b) install SIP
SIP是一个自动为C和C++库生成Python扩展模块的工具。为了方便开发PyQt,SIP于1998被“Riverbank Computing”公司创造出来。
不过,SIP不专用于PyQt,而是适用于所有的C和C++库。使用SIP时,程序员首先要编写一个特殊的".sip"文件,使用类似于C++的语法在其中描述扩展模块所提供的类型与函数。
然后用SIP将这个文件转化为C++代码。最终编译,与C、C++库链接后就成为Python扩展模块。".sip"文件类似于C、C++的头文件。
根据需要,需要程序员用SIP定义的语法添加一些C++代码中没有的信息。
因为SIP不支持完整的C++语法,所以不能直接使用C++的头文件作为".sip"文件。
http://blog.csdn.net/a359680405/article/details/45074761 for windows
http://blog.csdn.net/sunny2038/article/details/7237630
$ python configure.py --platform=linux-g++; make; make install
[error] python.h no such file or directory
[fix] apt-get install python3-dev
$ Hello SIP
Refer to: http://blog.csdn.net/sunny2038/article/details/7237630
在官网(https://riverbankcomputing.com/software/pyqt/intro)上下载SIP的Linux下的tar.gz格式的代码包,解压到某个目录中。然后在终端中进入该目录,依次输入python configure.py --platform linux-g++;make;make install即可。
测试SIP
a) 编写个C文件,功能是将两个数字相加并输出,命名为add.c,这个将成为在Python中的模块名
/* File : add.c */ int add(int x, int y) { int g; g = x + y; return g; }
b) 手工编写SIP文件,在使用SIP的过程中,一个C/C++的源码文件,必须对应一个同名的sip文件,命名为add.sip
/* Define the SIP wrapper to the add library. */ %Module(name=add, language="C") int add(int x, int y);
这里的C源码文件没有头文件,所以对应的sip文件很简单。如果C/C++的源码是实现部分,在实现部分还包括接口部分,即头文件。那么在相应的sip文件中需要用
%TypeHeaderCode
#include <word.h>
%End
c) 编译C文件。按照官网的说法,是编写configure.py,但别急,先做一些必不可少的工作。在命令行将add.c编译成add.o文件:输入
gcc -c add.c
ar -r libadd.a add.o
d) 手工编写configure.py文件
import os import sipconfig # The name of the SIP build file generated by SIP and used by the build # system. build_file = "add.sbf" # Get the SIP configuration information. config = sipconfig.Configuration() # Run SIP to generate the code. os.system(" ".join([config.sip_bin, "-c", ".", "-b", build_file, "add.sip"])) # Create the Makefile. makefile = sipconfig.SIPModuleMakefile(config, build_file) # Add the library we are wrapping. The name doesn't include any platform # specific prefixes or extensions (e.g. the "lib" prefix on UNIX, or the # ".dll" extension on Windows). makefile.extra_libs = ["add"] # Generate the Makefile itself. makefile.generate()
e) build
python configure.py
make
make install
f) 测试
>>>import add >>>add.add(4, 7) 11 >>>
g) others
[error] python.h no such file or directory
[fix] apt-get install python3-dev
[error] cannot find -ladd
[fix] add [-L ./ -ladd] in Makefile
$sip -v
4.18.1
c) install PyQt
$python configure.py --qmake=/home/chenxm/Qt/5.5/gcc/bin/qmake