目的:编写Python桌面应用程序。

备注:也可以选择VS2017+QtDesigner ,但更喜欢VSCode

第1步:安装PyQt5和PyQt5-tools

pip3 install -i https://mirrors.aliyun.com/pypi/simple/ PyQt5

pip3 install -i https://mirrors.aliyun.com/pypi/simple/ PyQt5-tools

第2步:找到QtDesigner 安装路径

一般会自动安装在python安装目录中,如果安装了Anaconda3,则将会在如下Anaconda3路径中找到:

E:\Soft_dp\Anaconda3\Lib\site-packages\pyqt5_tools

将该文件夹中designer.exe生成桌面快捷方式,方便日后制作.ui文件。

第3步:打开designer.exe,并绘制你想要的UI界面,如下图所示:

绘制完后,起个名字,保存到你准备制作该项目的文件夹中,比如:welcome.ui

第4步:用VSCode转化.ui文件为.py文件

(1)打开VSCode,打开welcome.ui刚才存放的那个工程文件夹。

(2)在welcome.ui上右键选择如下图红色圈内操作。(该选项需要VSCode提前安装PYQT Integration扩展)

点击后,会自动生成一个叫:UI_welcome.py的文件,里面就是刚才绘制界面的UI类。

第5步:新建一个.py文件,用于启动程序,并调用刚才制作的UI类,必要代码和解释如下:

  1. import sys
  2. from PyQt5 import QtCore, QtGui, QtWidgets
  3. from PyQt5.QtCore import *
  4. from PyQt5.QtWidgets import QFileDialog, QMessageBox, QDockWidget, QListWidget
  5. from PyQt5.QtGui import *
  6.  
  7. from Ui_welcome import Ui_MainWindow #导入创建的GUI类
  8.  
  9. #自己建一个mywindows类,mywindow是自己的类名。QtWidgets.QMainWindow:继承该类方法
  10. class mywindow(QtWidgets.QMainWindow, Ui_MainWindow):
  11. #__init__:析构函数,也就是类被创建后就会预先加载的项目。
  12. # 马上运行,这个方法可以用来对你的对象做一些你希望的初始化。
  13. def __init__(self):
  14. #这里需要重载一下mywindow,同时也包含了QtWidgets.QMainWindow的预加载项。
  15. super(mywindow, self).__init__()
  16. self.setupUi(self)
  17.  
  18. if __name__ == '__main__': #如果整个程序是主程序
  19. # QApplication相当于main函数,也就是整个程序(很多文件)的主入口函数。
  20. # 对于GUI程序必须至少有一个这样的实例来让程序运行。
  21. app = QtWidgets.QApplication(sys.argv)
  22. #生成 mywindow 类的实例。
  23. window = mywindow()
  24. #有了实例,就得让它显示,show()是QWidget的方法,用于显示窗口。
  25. window.show()
  26. # 调用sys库的exit退出方法,条件是app.exec_(),也就是整个窗口关闭。
  27. # 有时候退出程序后,sys.exit(app.exec_())会报错,改用app.exec_()就没事
  28. # https://stackoverflow.com/questions/25719524/difference-between-sys-exitapp-exec-and-app-exec
  29. sys.exit(app.exec_())

然后,直接按F5运行该文件,就会弹出刚才绘制的窗口:

VSCode + PYQT5 + QtDesigner 环境搭建和测试的更多相关文章

  1. Tensorflow object detection API ——环境搭建与测试

    1.开发环境搭建 ①.安装Anaconda 建议选择 Anaconda3-5.0.1 版本,已经集成大多数库,并将其作为默认python版本(3.6.3),配置好环境变量(Anaconda安装则已经配 ...

  2. 【运维技术】kafka三实例集群环境搭建及测试使用

    kafka三实例集群环境搭建及测试使用 单机搭建分为两部分:1. 软件安装启动 2. 软件配置 软件安装启动: # 切换到目录 cd /app # 获取kafka最新安装包,这边使用的是镜像地址,可以 ...

  3. Tensorflow object detection API(1)---环境搭建与测试

    参考: https://blog.csdn.net/dy_guox/article/details/79081499 https://blog.csdn.net/u010103202/article/ ...

  4. C++调用Lua编程环境搭建及测试代码示例

    C++调用Lua编程环境搭建及测试代码示例 摘要:测试环境是VS2005+LuaForWindows_v5.1.4-45.exe+WIN7 1.安装lua开发环境LuaForWindows_v5.1. ...

  5. 【转载】基于RedHatEnterpriseLinux V7(RHEL7)下SPEC CPU 2006环境搭建以及测试流程(之一)——介绍、安装准备、安装、config文件以及运行脚本介绍

    基于RedHatEnterpriseLinux V7(RHEL7)下SPEC CPU 2006环境搭建以及测试流程(之一)--介绍.安装准备.安装.config文件以及运行脚本介绍 其他 2018-0 ...

  6. Mybatis环境搭建及测试

    1.新建java project,导入相应jar包 本次使用到的mybatis-3.2.7版本 mybatis需要jar包:mybatis-3.2.7.jar.lib文件下的依赖jar mysql驱动 ...

  7. PyQt5开发环境搭建

    一 写在开头1.1 本节内容开个新坑—“PyQt5系列”,慢慢填.本文主要内容为PyQt5开发环境的搭建. 注意:PyQt 5.10以上的版本在Python 3.6中有BUG,PyQt 5.10版本是 ...

  8. vscode vue开发环境搭建

    以前仅了解过VUE但没有真正上手过,现在因为工作需要准备再近几个月里系统的学习一下这款超火的前端框架,希望大佬们指教. ---------------------------------------- ...

  9. webDriver环境搭建与测试

    1.安装jdk 2.安装eclipse 3.安装selenium 由于使用的是开发语言是java,因此需要安装java版的selenium包.下载地址:http://pan.baidu.com/s/1 ...

随机推荐

  1. list源码3(参考STL源码--侯捷):push_front、push_back、erase、pop_front、pop_back、clear、remove、unique

    list源码1(参考STL源码--侯捷):list节点.迭代器.数据结构 list源码2(参考STL源码--侯捷):constructor.push_back.insert list源码3(参考STL ...

  2. 简单的端口扫描器(TCP connect)

    端口扫描器原理相对简单,采用的是TCP connect状态判断.具体来说:TCP connect方式使用系统网络API connect向目标主机的端口发起连接,如果无法连接,说明该端口关闭.该方式扫描 ...

  3. mac使用brew安装mysql

    1.安装mysql #brew install mysql 报错 Error: The following directories are not writable by your user: /us ...

  4. [牛客小白月赛4 H] 相邻的糖果

    Description 有n个盒子摆成一排,每个盒子内都有ai个糖果. 现在你可以执行以下操作: ·你可以选择任意一个盒子,在选择的盒子内吃掉一个糖果. 对你的要求如下: ·任何m个相邻的盒子内糖果数 ...

  5. [Vijos 1676] 陶陶吃苹果

    Description curimit知道陶陶很喜欢吃苹果.于是curimit准备在陶陶生日的时候送给他一棵苹果树. curimit准备了一棵这样的苹果树作为生日礼物:这棵苹果树有n个节点,每个节点上 ...

  6. Shell 函数定义与调用

    linux shell 可以用户定义函数,然后在 shell 脚本中可以随便调用. 以一个计算两数之和的函数为例: #! /bin/bash # 函数定义 sum(){ return $(($1+$2 ...

  7. Extjs 在项目中碰到问题

    1.切换tabpanel,新建tab关闭后再新建报错,在火狐下报错 TypeError: el is null   el.addCls.apply(el, arguments); 这个我在下一篇文章中 ...

  8. C# 函数式编程:LINQ

    一直以来,我以为 LINQ 是专门用来对不同数据源进行查询的工具,直到我看了这篇十多年前的文章,才发现 LINQ 的功能远不止 Query.这篇文章的内容比较高级,主要写了用 C# 3.0 推出的 L ...

  9. char和string的不同点

    'a'是char, "a"是char string,这两者都是普通的字符和字符串,和C中没什么不同 值得注意的是后者包含两个字符,末尾有一个隐身的'\0' 而:string str ...

  10. matlab的解方程的例子

    syms x y z=exp(2*x+y)+cos(3*x*y)-exp(1)-1; zz=subs(z,x,1) solve(zz)