P_y_Q_t_5 和 E_r_i_c_6

来源:互联网 发布:网络机柜检验报告 编辑:程序博客网 时间:2024/06/03 12:41


这次心血来操,想搞个图形界面玩玩。就装了P y Q t5和e r i c6,网上太多乱七八糟的安装教程,我就以自己的安装过程写个博客。


前提我安装了python3.6.1,并且环境变量也搞好了。


1、在cmd里,直接输入命令pip install PyQt5    ,需要一点时间下载

(PyQt5其实就是python的第三方库而已,用不着去下载什么.exe文件等等乱七八糟的东西)


安装eric6

2、pip install pyqt5-tools    (因为PyQt5里没有设计器,所以在eric6里就不行,在pyqt5-tools里就有设计器,所以要安装)

3、自己找一个eric6,解压到   \Lib\site-packages       目录下,顺便也下载个中文包,覆盖eric6的一些文件

4、pip install Qscintilla

5、进入eric6-6.17文件夹,看到了install.py文件,输入命令   python install.py install

6、启动eric6,       双击eric6.pyw或者cmd界面输入eric6

7、配置eric6

选择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。重启生效。


配置完成。


PS:  最后一步,我不是说了PyQt5里面没有设计器,所以我把 pyqt5-tools文件夹里面的所有文件   拷贝到  \Lib\site-packages\PyQt5\Qt\bin  里面去,因为里面有designer.exe,只把它拷贝进去不能运行,可能缺少一些DLL把,所以我把所有文件都拷贝进去了


PS:又遇到一个问题,就是eric6在编译窗体时,说不能启动pyuic5。解决办法就是:把   python安装目录\Scripts下的pyuic5.exe复制一份,然后改名为pyuic5.bat,就可以了


PS: 没有对PyQt5的知识,就算给你eric6也没什么用,你也用不来。  所以:刚开始学最好,只用  PyQt5在Pycharm上编译   就好了,用习惯了再加上eric6,这样快一点





















Demos

提供2个简单的Demo验证平台是否正确搭建。

A. 非Eric小程序:

[python] view plain copy
 print?
  1. #!/usr/bin/env python  
  2. from PyQt5.QtWidgets import (QApplication, QLabel)  
  3. import sys  
  4.   
  5.   
  6. if __name__ == "__main__":  
  7.     app = QApplication(sys.argv)  
  8.     label = QLabel("<center>Hello World with PyQt5!</center>")  
  9.     label.resize(20050)  
  10.     label.show()  
  11.     sys.exit(app.exec_())  


B. Eric小项目:

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

1、新建项目。

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


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

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、完成

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



( 完 )