Debian8.1-x64下安装Qt5.5.1+sip4.17+QScintilla-gpl-2.9.1+PyQt-gpl-5.5.1+eric6-6.1.1

    首先声明本贴借鉴于以下两篇文章:

http://blog.csdn.net/idber/article/details/40076821

http://blog.csdn.net/touchft/article/details/45093417

    首先将所需要的文件从网站上下载下来,对应网址分别为:

Qt5:http://www.qt.io/download/

sip4.17:https://www.riverbankcomputing.com/software/sip/download

QScintilla-gpl-2.9.1:https://www.riverbankcomputing.com/software/qscintilla/download

PyQt-gpl-5.5.1:https://www.riverbankcomputing.com/software/pyqt/download5

eric6-6.1.1.tar.gz+eric6-i18n-zh_CN.GB2312-6.1.1.tar.gz:http://sourceforge.net/projects/eric-ide/files/eric6/stable/6.1.1/

将安装包全部复制到 /opt 文件夹中。首先解压eric6的安装包:tar -zxvf eric6-6.1.1.tar.gz
然后解压eric6中文包:tar -zxvf eric6-i18n-zh_CN.GB2312-6.1.1.tar.gz

中文翻译的文件会自动整合到eric6的文件夹里。

查看eric6-6.1.1文件夹中的README.rst可以找到一些关于安装的帮助信息,如下:

eric6 may be used with any combination of Python 3 or 2, Qt5 or Qt4 and
PyQt5 or PyQt4. If the required packages (Qt5/4, QScintilla2, sip and PyQt5/4)
are not installed, please get them and install them in the following order
(order is important).

1. Install Qt5 (from The Qt Company)

2. Build and install QScintilla2 (from Riverbank Computing)

3. Build and install sip (from Riverbank Computing)

4. Build and install PyQt5 (from Riverbank Computing)

5. Build and install QScintilla2 Python bindings
   (part of the QScintilla2 package)

6. Install eric6

于是按照顺序开始安装:

执行:

cd /opt

./qt-opensource-linux-x64-5.5.1.run

安装Qt。

安装好后,一定要通过指令“qmake -V”(我直接在root用户安装的该软件)核对qmake指令的版本,版本应该为:

QMake version 3.0
Using Qt version 5.5.1 in /opt/Qt5.5.1/5.5/gcc_64/lib

如果发现不符,说明可能电脑原来已经安装了Qt4,Debian8.1是通过一个叫qtchooser的指令来管理使用的Qt的版本,通过man qtchooser找到以下信息:

ENVIRONMENT
       QTCHOOSER_NO_GLOBAL_DIR
              If qtchooser has been built with QTCHOOSER_GLOBAL_DIR (predefined search paths for qtchooser's configuration files, useful
              in some distros), setting this variable will override its effect.

       QT_SELECT
              Same as -qt=version. If set, the selected configuration is used and binaries symlinked to qtchooser will be executed with‐
              out additional parameters.

       XDG_CONFIG_HOME

       XDG_CONFIG_DIRS
              Used as specified in <http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html>

FILES
       /etc/xdg/qtchooser/*.conf
              System-wide  configuration  files. Each has two lines, the first is the path to the binaries and the second is the path to
              the Qt libraries. If a default.conf is provided, the settings from it will be automatically used in case nothing  else  is
              selected.

       $HOME/.config/qtchooser/*.conf
              User configuration files.

于是在对应目录分别建立了qt551.conf文件(或者只建立一个,另一个做软链接也可),并在其中保存以下语句:

/opt/Qt5.5.1/5.5/gcc_64/bin
/opt/Qt5.5.1/5.5/gcc_64/lib

并在用户以及root的初始目录中的.bashrc文件中加入下边语句:

export QT_SELECT = qt551

这时输入 qmake -v 后,版本应该对了。

下一步安装QScintilla2,首先解压:

cd /opt
tar -zxvf QScintilla-gpl-2.9.1.tar.gz 
先安装本体:

cd /opt/QScintilla-gpl-2.9.1/Qt4Qt5
qmake qscintilla.pro
make
make install

再安装designer:

cd ../designer-Qt4Qt5
qmake designer.pro
make
make install

下一步安装sip:

tar -zxvf sip-4.17.tar.gz
cd sip-4.17
python3 configure.py
make
make install

安装后, 分别在终端输入:

sip -V

和在python3换进中输入:

>>>import sip  
>>>print(sip.SIP_VERSION_STR)
它们的结果都应该是4.17这个版本,如果发现不一样,请执行: sudo -rm /usr/lib/python3/dist-packages/sip*并重新安装,如果这两个版本不一样,在安装eric6的时候会报错。

安装PyQt5,执行:

cd PyQt-gpl-5.5.1
python3 configure.py
make

出错:

/opt/PyQt-gpl-5.5.1/sip/QtPositioning/qgeolocation.sip:28:26: fatal error: qgeolocation.h: 没有那个文件或目录
 #include <qgeolocation.h>
                          ^
compilation terminated.
 
进入到https://github.com/RSATom/Qt/blob/master/qtlocation/src/positioning/qgeolocation.h这个网址,在 /opt/Qt5.5.1/5.5/gcc_64/include/QtPositioning/ 和 /opt/Qt5.5.1/5.5/Src/qtlocation/include/QtPositioning/ 以及  目录中创建 qgeolocation.h文件,并重新编译,make; make install。

安装 QScintilla2 python building:

这个部分安装时很费劲,因为默认的大都是针对与PyQt4的,所以要仔细看好configure.py,再进行配置及安装,索性手动配置参数:

python3 configure.py --destdir=/usr/lib/python3/dist-packages/PyQt5 --pyqt=PyQt5 --pyqt-sipdir=/usr/share/sip/PyQt5 --qsci-incdir=/opt/Qt5.5.1/5.5/gcc_64/include --qsci-libdir=/opt/Qt5.5.1/5.5/gcc_64/lib --qsci-sipdir=/usr/share/sip/PyQt5
make
make install
最后,安装eric6,如果前边安装正确的话,这一步其实很快:

cd /opt/eric6-6.1.1
python3 install.py
python3 install-i18n.py 

安装完成后,用 root 执行 eric6,遇到以下问题:

QString::arg: Argument missing: 无法解析SSLv2_client_method中的符号“SSLv2_client_method”:ssl, (/usr/lib/x86_64-linux-gnu/libssl.so.1.0.0: undefined symbol: SSLv2_client_method)
QString::arg: Argument missing: 无法解析SSLv2_client_method中的符号“SSLv2_client_method”:crypto, (/usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0: undefined symbol: SSLv2_client_method)
qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method
QString::arg: Argument missing: 无法解析SSLv2_server_method中的符号“SSLv2_server_method”:ssl, (/usr/lib/x86_64-linux-gnu/libssl.so.1.0.0: undefined symbol: SSLv2_server_method)
QString::arg: Argument missing: 无法解析SSLv2_server_method中的符号“SSLv2_server_method”:crypto, (/usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0: undefined symbol: SSLv2_server_method)

参考于文章:

http://www.th7.cn/system/lin/201506/108282.shtml

在 http://openssl.org 网站上下载最新的 OpenSLL库:opensll-1.0.2f.tar.gz,并解压到 /opt目录下。

进入后,配置一下OpenSSL,让它产生动态链接库:

./configenable-shared
make

并将生成的 libssl.so.1.0.0 和 libcrypto.so.1.0.0 替换到目录 /usr/lib/x86_64-linux-gnu/ 中(最好先对源文件进行备份)

此时再执行 eric6,该问题得到解决。

eric6配置:

配置过程:

终端输入eric6启动:

1、选择Settings -> preference -> Editor -> Autocompation。勾选所有选框;


2、选择Settings -> preference -> Editor -> QScintilla 。勾上左右的两个选框,然后在下面source中,选择from Document and API files;


3、选择Settings -> preference -> Editor -> APIs。勾选Complie APIs Autocompation,在Language中,选择python3。点面下面的Add from installed APIs按钮,选择住需要的.api文件。最后点击Compile APIs;


4、选择Settings -> preference -> Interface -> Interface。右侧Language根据喜好选择中文或者English。重启生效。


配置完成。

执行代码:

<pre name="code" class="plain">#!/usr/bin/env python
from PyQt5.QtWidgets import (QApplication, QLabel)
import sys

if __name__ == "__main__":
    app = QApplication(sys.argv)
    label = QLabel("<center>Hello World with PyQt5!</center>")
    label.resize(200, 50)
    label.show()
    sys.exit(app.exec_())

 

时遇到错误:eric6 Gtk-Message: Failed to load module "canberra-gtk-module" 的解决办法:

sudo apt-get install libcanberra-gtk-module
Or if it's already installed and you still get the error:

sudo apt-get install libcanberra-gtk-module:i386
不过本人只用到了第一句,就解决了。


至此,安装全部完成,在gnome界面下打开,完美运行。


eric6新建小demo部分引用原文章:

B. Eric小项目:

此部分转自:http://www.pythoner.com/89.html

1、新建项目。

点击【项目】-【新建】,弹出如下的对话框。创建一个名为demo2的项目。注意,在创建项目时,eric不会自动根据填写的项目名称修改项目文件夹名称!


点击确定之后,可以看到一个源代码树中只有__init__.py的项目。另外,eric还创建了几个文件,但是并不会在这里显示出来,他们分别是项目文件”pyqtdemo.e4p”和”_eric4project”文件夹。

注意这一步一定要在eric6本身默认的工作目录内再新建一个文件夹,可以去这个文件夹中去新建自己的小项目,不然的话OK的按钮一直是灰色的!

2、新建窗体。

将左侧的【源代码】选项卡切换至【窗体】选项卡(左数第二个)。右键空白区域,选择【新建窗体】。在弹出的对话框中选择【对话框】。在弹出的文件对话框中,选择文件位置,并填写文件名称。这里,我们将其命名为demo2.ui。确定后,就可以看到【窗体】选项卡中,有一个demo2.ui文件了。


3、设计窗体。

右键点击“pyqtdemo.ui”文件,选择【在Qt设计师中打开】,就可以在Qt Designer中设计UI界面了。


从图中可以看到,Qt Designer分为如下几个部分:

  • 菜单栏:包括文件、编辑、窗体、视图、设置、窗口和帮助。
  • 工具栏:包括文件操作、部件前后置、编辑窗口部件、编辑信号/槽、编辑伙伴、编辑Tab顺序、布局方式、调整大小等。
  • 部件栏:包括各种可用部件。
  • 窗体设计区域
  • 对象查看器:可以查看各部件对象关系树及其所属的类
  • 属性编辑器
  • 信号/槽编辑器
  • 动作编辑器
  • 资源编辑器

3.1、修改窗体属性

默认的窗体属性中,objectName(部件名称,其他程序引用时使用)默认为Dialog,windowTitle(窗体标题)默认也是Dialog。我们可以根据自己的需要,对对话框的各个属性进行修改。这里,我只修改了windowTitle为“PyQt Demo”,并改变了其大小。

3.2、添加部件

从左侧的widget box中拖出3个PushButton,1个label。修改它们的objectName、text等属性。其中3个PushButton的ObjectName分别为btn1、btn2、btnClose。
添加后的效果图,如下图所示:


4、信号与槽

4.1、概念

在PyQt5中,事件处理的相关术语为“信号(signal)”和“槽(slot)”。
信号的含义就是我们常说的事件,比如按钮被按下、复选框勾选状态变更、可输入文本框文本变更等等。
槽的含义则是事件处理函数,比如关闭窗体、隐藏窗体、最大/小化、设置焦点、重绘等。

4.2、使用一个自带的槽

我们从工具栏中,选择【编辑信号/槽】。

拖动要编辑的部件,会出现一个类似于电路中接地符号的标志,并弹出对话框。

这里,我们选择clicked(),即按钮被按下,此时看到右侧可选的槽并不多,并且没有我们希望使用到的关闭功能。


勾选【显示从QWidget继承的信号和槽】,这时可以发现,右侧的槽多了很多。在其中找到close(),点击确定。此时,点击【关闭】按钮执行对话框关闭的功能就已经实现了。


下图是已经创建了【关闭】按钮槽之后的窗体设计图。


4.3、第一次运行

虽然只实现了一个关闭功能,但是还是让我们先来看看如何运行这个到目前为止一行代码都没有写过的程序吧。
现在回到eric的界面,右键“demo2.ui”,选择【编译窗体】。

短暂的时间过后,可以看到编译成功提示。这时,我们切换到【源代码】选项卡,可以看到一个名为Ui_demo2.py的文件,这就是根据刚才那个ui文件自动编译而成的,我们不需要对其进行任何修改,也不应当对其进行任何修改,因为,任何对这种文件,在下次编译后,之前的修改会全部不存在。

看,下图,就是我们第一次运行时的场景。在eric里,我们可以F2直接运行,或F5进行调试。当按下【关闭】的时候,窗体就会被关闭。


4.4、创建自定义槽

使用自带槽的方式很简单,然而,它所能实现的功能也是有限的,在我们的开发中,绝大多数信号发生时,不会使用默认的槽。因此,这一小节将通过按钮1、2的实现来介绍如何创建一个自定义槽。
自定义槽,就要求自己写其中的槽函数,而之前的操作中,我们还没有动手写过一次代码,那么这个槽的代码写在哪里呢?
我们再切换回【窗体】选项卡,右键demo2.ui,选择【生成对话框代码】。
首先,点击【新建】,新建一个类,在这里可以修改类名、文件名和路径。

然后在下面的选框中,选择自己需要使用到的信号。比如,我的选择如下图所示,是两个按钮被按下时的信号:


这时,就生成了一个默认的代码。对这个代码进行修改,实现预期的内容。


5、完成

修改之后代码和运行界面如下:


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值