前序

之前学习了一款GUI图形界面设计的Tkinter库,但是经大佬的介绍,PyQT5全宇宙最强,一脸的苦笑

毫不犹豫的选择转战PyQT5,在学习之前需要先安装一些必须程序,在一番查阅后,发现PyQt5的学习存在两种

学习工具,一种是Eric6,单独的图形界面编写脚本,(还是用python编写的),另一个就是直接装在pycharm里的

外部工具。因为一直一样来用惯了pycharm,所以选择了pycharm的安装方法


目录

安装前提

安装QtDesigner

安装PyUIC

转换后的代码处理

安装PyRCC


安装前提

首先就是pip安装PyQt5:

pip install PyQt5

然后需要安装Qt工具,也选择pip安装:

pip install PyQt5-tools

安装完成之后先确认一下安装位置,因为之后用的上,正常的话,会在你的python的安装目录下的

\pythonx.x\Lib\site-packages目录下,如图:


安装QtDesigner

然后进入pycharm的File下的settings,选择External Tools,

因为我已经安装好了,所以窗口有工具的显示,

没有安装的应该是空白的或者其他你之前安装好的工具,点击上方的绿色加号

 先引入Qt设计的工具(这个工具可以以控件拖拽的形式设计自己的界面程序)

在加号弹出的显示框中输入如图的内容

Name:QtDesigner  

Program:之前PyQt5-tools目录下的designer.exe文件

Working directory:$FileDir$

这样,QttDesigner就完成了


安装PyUIC

 再引入转代码的PyUIC工具(PyUIC可以将前面设计的程序转换成python代码)

如图设置,所见即所得,Program的设置是python目录下的Script下的pyuic5.exe

Argument的设置如下

-m
PyQt5.uic.pyuic
$FileName$
-o
$FileNameWithoutExtension$.py

如此安装就完成了

使用的话,在需要的目录下右键选择External Tools选择QtDesigner进行DUI设计,然后保存,

再对.ui文件相同方法选择PyUIC,就可以转化成为.py文件


转换后的代码处理

有一个问题是这个时候的python代码点击运行是没有弹出你设计好的窗口的

1、在转换的.py文件内删除以下三行:

MainWindow.setCentralWidget(self.centralwidget)
MainWindow.setMenuBar(self.menubar)
MainWindow.setStatusBar(self.statusbar)

2、在底部添加如下代码:

if __name__=="__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
widget = QtWidgets.QWidget()
ui = Ui_MainWindow()
ui.setupUi(widget)
widget.show()
sys.exit(app.exec_())

这样虽然可以达到设计与代码的界面逻辑工作,但是只适用于你的GUI设计一次就设计完成,后续不用再进行更改,

不然修改后的.ui文件再转换成.py文件的话,之前的代码就会被覆盖,所以实用度不大

再介绍一种新的方法,将设计与逻辑分离,只用建立一个新的.py文件调用界面文件,这个新的.py文件称为逻辑文件,

也可以实现业务文件。界面文件和逻辑文件是两个分开的相对独立的文件,通过上述的方法就可以实现界和逻辑的分离。

实现上述理论的方法很简单,新建的.py文件代码如下:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from MyFirstUI import * class MyMainWindow(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MyMainWindow, self).__init__(parent)
self.setupUi(self) if __name__ == '__main__':
app = QApplication(sys.argv)
myWin = MyMainWindow()
myWin.show()
sys.exit(app.exec_())

需要注意的是:新建的文件,需要和前面的文件放在一起,另外代码中斜体下划线的字是你自己.ui文件的文件名,

要自己修改。这样的话,两边都可以修改,又不会相互影响,大功告成!!!!


安装PyRCC

我们在设计GUI的时候,常常需要用到一些资源文件,比如图片这样的文件,通常较使用的方法是将资源文件

转换成Python文件,然后引用Python文件。

首先需要在Pycharm中新建一个.qrc文件,在文件里面填入如下内容:

<rcc version="1.0">
<qresource>
</qresource>
</rcc>

然后在Qt Designer中创建一个Widget窗口,找到资源浏览器,打开之前创建的.qrc文件,然后再导入需要使用的资源文件,

如图,左边导入文件叫apprcc_rc.qrc,右边创建一个存放资源文件的文件夹(pic),再导入资源文件,完成后保存退出

注意:.qrc文件转换成功以后是同名的.py文件,但是Qt Designer导入文件默认是加_rc.py格式的,

所以要么文件名为xxx_rc.qrc再转换,要么就转换完了以后再重命名为加_rc.py的文件

会发现之前的.qrc文件里面的代码是XML格式的,然后开始讲解在Pycharm中如何将.qrc文件转换成py文件

<RCC>
<qresource prefix="pic">
<file>images/cartoon1.ico</file>
<file>images/cartoon2.ico</file>
<file>images/cartoon3.ico</file>
<file>images/cartoon4.ico</file>
<file>images/python.jpg</file>
</qresource>
</RCC>

进入pycharm的File下的settings,选择External Tools

Program:自己Python安装路径下的Script下的pyrcc5.exe

Argument:

$FileName$
-o
$FileNameWithoutAllExtensions$.py

Working directory:。。。。

这样就可以使用资源文件了

关于PyQt5,在pycharm上的安装步骤及使用技巧的更多相关文章

  1. pyCharm上解决安装不上pandas库问题

    最近在PyCharm上安装pandas库的时候,总是安装不上,提示好像是pip除了错误.我使用的是python .4版本.最后判断应该是自己pip版本应该太旧了,最后再cmd更新了pip之后就行了.如 ...

  2. minkube在deban10上的安装步骤

    环境准备: 所用机器为4c 16g  i3 4170   1t机械硬盘 系统 debian 10 安装docker 如果已经安装并配置好可直接跳过 安装ssl sudo apt-get install ...

  3. gdb在Mac上的安装步骤

    到gdb官网下载gdb安装包,解压后,在“终端”中进入其目录:然后依次执行如下命令行: 1st:CFLAGS='-Wno-string-plus-int -g -O2' ./configure --d ...

  4. Linux 上pcntl安装步骤

    一. 下载对应的PHP源码包 wget http://cn2.php.net/get/php-5.5.20.tar.gz/from/this/mirror 二. 解压下载的源码文件 tar -zxvf ...

  5. MySQL在windows上的安装步骤

    参考文章MySQL安装及建议:https://zhuanlan.zhihu.com/p/44977117 但在进入mysql中修改root命令时,使用文章中的命令: ALTER USER 'root' ...

  6. 机器学习框架MXnet安装步骤

    安装环境:redhat7.1+vmw 安装步骤: # Install git if not already installed. sudo yum -y install git-all# Clone ...

  7. 【pycharm】在pycharm上,使用python的pip安装tensorflow过程

    如题:在pycharm上,使用python的pip安装tensorflow过程 最后成功安装的版本信息是: python版本是3.6.5 pip版本是9.0.1 pycharm版本是2018.1 te ...

  8. hive1.2.1安装步骤(在hadoop2.6.4集群上)

    hive1.2.1在hadoop2.6.4集群上的安装 hive只需在一个节点上安装即可,这里再hadoop1上安装 1.上传hive安装包到/usr/local/目录下 2.解压 tar -zxvf ...

  9. 【pycharm】pycharm上安装tensorflow,报错:AttributeError: module 'pip' has no attribute 'main' 解决方法

    pycharm上安装tensorflow,报错:AttributeError: module 'pip' has no attribute 'main' 解决方法 解决方法: 在pycharm的安装目 ...

随机推荐

  1. BusyBox telnetd配置

    配置telnetd遇到的一些坑,记录一下 BusyBox版本1.22.1 Networking Utilities -->[*] telnetd 错误1: Escape character is ...

  2. AngularJS2.0 一个表单例子——总体说来还是简化了1.x 使用起来比较自然

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  3. 同一个Tomcat下不同项目之间的session共享

    最近发现项目运行过程中经常会抛出一个 NullPointerException的异常,经检查发现异常出现的地方是日志模板,一阵检查,正常无误 (把所有记录日志的地方都点了一遍,心里是崩溃的),万念俱灰 ...

  4. css样式之vertical-align垂直居中的应用

    css样式之vertical-align垂直居中的应用:将图片垂直左右居中 元素垂直居中 1:必须给容器父元素加上text-align:center 2:必须给当前元素转换成行内块元素,display ...

  5. mysql索引的操作

    一.创建和查看普通索引 这是最基本的索引类型,而且它没有唯一性之类的限制 1.创建表时创建普通索引 CREATE TABLE table_name( 属性名 数据类型, ... 属性名 数据类型, I ...

  6. Hadoop Hive概念学习系列之hive里的扩展接口(CLI、Beeline、JDBC)(十六)

    <Spark最佳实战  陈欢>写的这本书,关于此知识点,非常好,在94页. hive里的扩展接口,主要包括CLI(控制命令行接口).Beeline和JDBC等方式访问Hive. CLI和B ...

  7. Flume NG基本架构与Flume NG核心概念

    导读 Flume NG是一个分布式.可靠.可用的系统,它能够将不同数据源的海量日志数据进行高效收集.聚合.移动,最后存储到一个中心化数据存储系统中. 由原来的Flume OG到现在的Flume NG, ...

  8. C++ Primer(第4版)-学习笔记-第2部分:容器和算法

    第9章 顺序容器 顺序容器和关联容器 顺序容器内的元素按其位置存储和访问. 关联容器,其元素按键(key)排序. 顺序容器(sequential container). 顺序容器的元素排列次序与元素值 ...

  9. java DDD 基于maven开发的探讨

    对于DDD我目前的理解是 1.除了数据的基本操作,也可以把一些公用的方法或者类迁移到Infrastructrue 2.对于domain层可以声明各个聚合根的操作接口:例:IXXXRepository ...

  10. Html常用标签及全称

    <!-- 块标签 divsion --><div></div> <!--br 换行    break--> <br /> <!--分割 ...