环境搭建

  • 电脑环境

    • win10 64位系统
  • Python3.5安装
    • 从Python官网下载python3.5安装文件,选择windows 64位版本python-3.6.5-amd64.exe。双击安装。在安装的过程中可勾选自动设置环境变量
  • PyQt5.6安装
    • 从PyQt官网下载安装文件,由于最新版本的PyQt5.7需要自主编译安装,无可执行的安装文件,所以我们这里下载5.6版本,找旧版本的下载地址,在这里我们我们选择64位版本的PyQt5-5.6-gpl-Py3.5-Qt5.6.0-x64-2.exe。下载后可以直接双击安装,其中有一步要指定Python的安装位置,如果上一步中已经定义过Python的环境变量,这里可以自动设置
    • 或者参考pip安装 pip install -i https://pypi.douban.com/simple pyqt5
    • pip install -i https://pypi.douban.com/simple pyqt5-tools

安装到这里PyQt编程环境基本满足,后续可以选择安装IDE环境。创建一个程序运行测试环境是否安装成功

1
2
3
4
5
6
7
8
9
import sys
from PyQt5 import (QtWidgets, QtCore) app = QtWidgets.QApplication(sys.argv)
widget = QtWidgets.QWidget()
widget.resize(480, 320)
widget.setWindowTitle("Hello, PyQt5.8!")
widget.show()
sys.exit(app.exec())

  • 配置pycharm

    • 配置python解释器:打开pycharm->ctrl+alt+s->Project Interpreter
    • 设置Qt Designer:打开pycharm->ctrl+alt+s->Tools->External Tools ->点击加号;
      • Name:QtDesigner
      • Programs:D:\Python\Python36\Lib\site-packages\pyqt5_tools\Qt\bin\designer.exe(需要修改为你电脑里边的“designer.exe”路径)
      • Working directory:$FileDir$
    • 配置PyUIC:打开pycharm->ctrl+alt+s->Tools->External Tools ->点击加号;
      • Name:PyUIC
      • Programs:D:\Python\Python36\python.exe(需要修改为你电脑里边的“python.exe”路径)
      • Parameters: -m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
      • Working directory:$FileDir$

使用Qt Designer

  1. 完成以上步骤之后,点击 Tools -》External Tools -》Qt Designer 启动我们的Qt Designer
  2. 启动后选择:Widget,建立空白的窗口,点击 Create,其他默认就行
  3. 从左边 1区 拖拽,注意是“拖拽”控件到 2区,在 3区 中修改对应属性
  4. 完成基本的界面设置之后,会看到同目录下生成了一个“.ui”的文件
  5. 右键 External Tools -》PyUIC ,将“.ui”文件转为“.py”文件
  6. 这时,如果一切正常,没有报错的话,会在同目录下生成对应的“.py”文件
  7. 将下面的代码,放到生成的“.py”文件,放到最后就行(注意缩进)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if __name__=="__main__":
    import sys
    from PyQt5.QtGui import QIcon
    app=QtWidgets.QApplication(sys.argv)
    widget=QtWidgets.QWidget()
    ui=Ui_Form()
    ui.setupUi(widget)
    widget.setWindowIcon(QIcon('web.png'))#增加icon图标,如果没有图片可以没有这句
    widget.show()
    sys.exit(app.exec_())
  8. 运行启动,好了,恭喜你,开启了pythonGUI

打包项目生成exe文件

使用pyinstaller打包Python3.5+PyQt5.6项目生成exe文件

  • pywin32安装

  • pyinstaller安装
  • pyinstaller使用方法
    • pyinstaller [opts] ***.py

      可选的opts有:
        -F, –onefile 打包成一个exe文件。
        -D, –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)。
        -c, –console, –nowindowed 使用控制台,无界面(默认)
        -w, –windowed, –noconsole 使用窗口,无控制台

    • pyinstaller -F -w login.spec spec文件用来进行配置多文件和图片等的打包配置
    • 打完包后,必须的配置文件和代码需要放在exe文件的相同目录下
  • 打包测试

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    #采用一个calculator的代码对pyinstaller进行测试。
    import sys
    from math import *
    from PyQt5.QtCore import *
    from PyQt5.QtWidgets import (QApplication, QDialog, QLineEdit, QTextBrowser,
    QVBoxLayout) class Form(QDialog):
    def __init__(self, parent=None):
    super(Form, self).__init__(parent)
    self.browser = QTextBrowser()
    self.lineedit = QLineEdit("Type an expression and press Enter")
    self.lineedit.selectAll()
    layout = QVBoxLayout()
    layout.addWidget(self.browser)
    layout.addWidget(self.lineedit)
    self.setLayout(layout)
    self.lineedit.setFocus()
    self.lineedit.returnPressed.connect(self.updateUi)
    self.setWindowTitle("Calculate") def updateUi(self):
    try:
    text = self.lineedit.text()
    self.browser.append("%s = <b>%s</b>" % (text, eval(text)))
    except:
    self.browser.append("<font color=red>%s is invalid!</font>" % text)
    self.lineedit.setText('') if __name__=="__main__":
    app = QApplication(sys.argv)
    form = Form()
    form.show()
    app.exec_()
  • 代码保存为calculator.py,直接用python解释器运行,可以得到如下窗口:

  • 打开命令行窗口,进入calculator.py所在目录。运行下面指令

    pyinstaller -F -w calculator.py

  • pyinstaller自动执行一系列过程,最后在同目录下的dist文件夹中生成了calculator.exe。

  • calculator.exe运行效果与之前直接用解释器运行相同

FAQ

  • pyinstaller打包pyqt5问题解决

    • Cannot find existing PyQt5 plugin directories Paths checked: C:/Qt/5.6.0/plugins

      • 1.创建C:/Qt/5.6.0/plugins目录,2.将pyqt5.dll,pyqt5qmlplugin.dll文件添加至目录下
    • 打包成功后,打开exe文件,报错could not find or load the Qt platform plugin “windows”
      • 把xxx\site-package\PyQt5\Qt\plugins\platforms 文件夹复制到生成的 目标.exe 文件目录下

基于PyQt5的Python-Gui开发的更多相关文章

  1. 程序员之路:python3+PyQt5+pycharm桌面GUI开发(转)

    程序员之路:python3+PyQt5+pycharm桌面GUI开发 http://blog.sina.com.cn/s/blog_989218ad0102wz1k.html 先看效果: 图 1 没错 ...

  2. Python3+PyQt5+PyCharm 桌面GUI开发环境搭建

    Python3+PyQt5+PyCharm 桌面GUI开发环境搭建 一.安装python PyQt5所支持的python版本是不低于3.5版本 python3.5以上的版本安装:https://www ...

  3. Python GUI开发环境的搭建

    原文:Python GUI开发环境的搭建 最近对Python的开发又来了兴趣,对于Python的开发一直停留在一个表面层的认识,玩的部分比较大. Python的入手简单,语法让人爱不释手,在网络通信方 ...

  4. Python GUI开发,效率提升10倍的方法!

    1 框架简介 这个框架的名字叫 PySimpleGUI,它完全基于Python语言,能非常方便地开发GUI界面,代码量相比现有框架减少50%到90%.并且,它提供了极为友好的Python风格的接口,大 ...

  5. 程序员之路:python3+PyQt5+pycharm桌面GUI开发

    http://blog.sina.com.cn/s/blog_989218ad0102wz1k.html 先看效果: 图 1 没错,学过C#的同学应该很熟悉这个界面,按钮风格和界面风格很相似,万万没想 ...

  6. Python3+PyCharm+PyQt5配置进行GUI开发

    一.安装Python3.5以上版本. 链接:https://www.python.org/downloads/windows/ 二.安装PyQt5. 使用pip安装:1.进入 C:\Users\你的计 ...

  7. python3.4学习笔记(九) Python GUI桌面应用开发工具选择

    python3.4学习笔记(九) Python GUI桌面应用开发工具选择 Python GUI开发工具选择 - WEB开发者http://www.admin10000.com/document/96 ...

  8. 【python】python GUI开发框架介绍

    Python GUI开发的库不少.最常用的的也就几个. Tkinter -Tk是Python自带的GUI库, 上手简单, 做个简单界面基本够用了,但是不够美观,功能不全面. wxPython -开源免 ...

  9. 基于Qt Designer和PyQt5的桌面软件开发--环境搭建和入门例子

      本文介绍了如何使用技术栈PyCharm+Qt Designer+PyQt5来开发桌面软件,从环境搭建.例子演示到对容易混淆概念的解释.文中用到的全部软件+代码下载链接为:https://url39 ...

  10. 解决基于BAE python+bottle开发上的一系列问题 - artwebs - 博客频道 - CSDN.NET

    解决基于BAE python+bottle开发上的一系列问题 - artwebs - 博客频道 - CSDN.NET 解决基于BAE python+bottle开发上的一系列问题 分类: python ...

随机推荐

  1. 前端开发HTML&css入门——CSS&选择器练习

    CSS 层叠样式表 (Cascading Style Sheets)css可以用来为网页创建样式表,通过样式表可以对网页进行装饰.所谓层叠,可以将整个网页想象成是一层一层的结构,层次高的将会覆盖层次低 ...

  2. 基于TCP/UDP协议的socket

    基于TCP协议的socket tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端 server端 import socket sk = socket.socket() sk.bind( ...

  3. tr 替换或删除字符

    1.命令功能 tr 从标准输入中替换,压缩间隔或者删除字符并从定向到标准输出. 2.语法格式 tr  option  SET1  SET2 参数 参数说明 -c 取代所有SET1中字符串 -d 删除所 ...

  4. libboost_regex 备份用时

    libboost_regex-vc100-mt-s-1_57.lib  //生成数据

  5. Linux 正在尝试其他镜像

    Linux  正在尝试其他镜像 发生情景: 在windows7系统,安装了虚拟机Oracle VM VirtualBox,使用的CentOS7, 在使用yum的使用,一直提醒"正在尝试其他镜 ...

  6. Qt带参数的信号和槽

    在Qt的开发过程中,信号带参数是很常见的,在使用带参数的信号槽时,有以下几点需要注意. 当信号和槽函数的参数数量相同时,它们的参数类型要完全一致. 信号和槽函数的声明: signals: void i ...

  7. NTC电阻Rt与温度T关系

    NTC电阻Rt与温度T公式如下: Rt=10000*exp(3950*(1/(273.15+T)-1/(273.15+25))). 例:0摄氏度时,电阻为33620.6037214357 欧姆 Rt= ...

  8. DevExpress ASP.NET Core Controls 2019发展蓝图(No.6)

    本文主要为大家介绍DevExpress ASP.NET Core Controls 2019年的官方发展蓝图,更多精彩内容欢迎持续收藏关注哦~ [DevExpress ASP.NET Controls ...

  9. [CF1208D] Restore Permutation

    传送门 题意:有一个长为\(n\)的排列\(p\),设\(S_i=\sum_{j=1}^{i-1}p_j\cdot[p_j<p_i]\),给出\(S\),要求还原出\(p\).保证有解,\(n\ ...

  10. java Collections.binarySearch 用法

    package testCollections; import java.util.ArrayList;import java.util.Collections;import java.util.Co ...