宇宙最强VisualStudio2017配置pyQt5用于python3.6的UI界面工具

转载: https://blog.csdn.net/m0_37606112/article/details/78675610

前言 
请务必注意我的写作日期是2017年12月10日。

现在的新版都在不停的变化中,希望会越来愈好。

2017年3月18日,微软发布了Visual Studio2017,其中的社区版可以自由下载并应用,在这一款号称“宇宙最强”的IDE和编译器中,终于集成了对python语言的支持,并直接加入了机器学习的框架,不愧其牛B的称号。 
和传统的pycharm相比,微软继承了一其一贯的强大作风,在编程时给码农无微不至的关怀,自动补全和提示、环境和工具应有具有,而且可以直接连接网络从gitHub中获取pyhon框架,很牛很暴力! 
然而,在这一个版本中有一个败笔,就是VS2017版中没有python的UI支持和打包发行的的支持,让我么看看官网是如何描述的。


官网推荐python的用户UI采用pySide或者pyQt,但是按照官网的链接,遍寻QT的官网,pySide仅仅支持python至3.4版本,VS2017的python缺省版本就是3.6,pyQt就压根找不到支持VS2017的文件,而且其官网上也就最多支持到python的3.5版,显而易见,写这段话的攻城狮压根就对UI不敢兴趣而且对python的UI极不熟悉,这段话不仅是废话而且恐怕是一个巨大的坑,会导致阅读并寻求答案的人陷入迷途。微软,你摊上事了。 
经过一天在黑暗中的摸索,我把自己的答案写出来,各位童鞋,福利来了,翠花,还等什么,上酸菜吧!

流程 
不要问为什么,按照我的流程执行就好了。 
1 在VisualStudio017中,打开文件-新建-项目,选择python工程: 
 
填写项目的目录和项目的名字,确定。

2 创建一个python文件,helloWorld,随便简单敲几行代码。没关系,后面要变化的。 

3 选择工具-外部工具,如图的界面,点击添加 

在标题处填入“pyQTDesigner”,命令行选择exe文件,在pyhon的sit-package目录下的pyqt-tools下 
**提别提醒:在执行这一步之前,确保如下: 
1 你已经安装了python3.6 
2 pip3 install pyqt5 
3 pip3 install pyqt-tools**

参数一行采用宏命令,直接选择“itemFileName”后再后面添加“_form.ui”,其中的_form你可以按照自己的意思随便填写,ui是专有的扩展名,不得变更。 
点击确定。

同样,按照上述步骤添加一个外部工具“pyuic5”,其执行文件是一个py文件,在pyhon的scripts目录下,参数行填写看我的示意图,其实质是在执行一个命令:“pyuic5 fileName.ui -o fileName.py”,就是将Qt的UI文件转化为py文件,其中的文件名是一个宏命令,后面还添加了我们刚才给出的后缀,当然,参数行也可以不用填写,到时自己指定就好了。目录也是一个宏命令,就是你的项目的路径。 

4 点击确定后回到VS2017,我们看到在工具菜单下已经多出了两个标签: 

5 点击其中的“pyQtDesigner”:点击确定。 

6 就会打开一个Qt的Ui界面: 
 
在弹出的提示框中选择新建 
 
选择main windows. 
 
在窗体上拉入两个按钮,给出触发事件的函数命名,拉入一个editText和lable。这些都是pyQt5的标准做法,和其它的windows窗体工具箱一样,这里有丰富的UI控件,自由编辑就好了。

点击保存后就可以将这个窗体关掉,回到项目的目录下,你会发现出现了一个“helloWorld_form.ui”的文件,这就是我们刚才创建的窗体文件。 

7 回到VS2017,点击工具-pyuic5,出现如下提示框,就是刚才我们填写的命令和参数,点击确定。 
 
你会发现在项目的目录下多出来一个“helloWorld_form.py”的文件,这就是QT文件直接转化成为py文件。 

回到VS2017界面,打开这个py文件,里面就是标准的py语言。对这个文件我们不需要做任何更改。 
注意:在VS中这个文件里的内容会和pycharm中稍有不同。 

8 回到我们的项目文件“helloWorld.py”文件,补全内容: 

from helloWorld_form import Ui_MainWindow # 导入uitestPyQt5.ui转换为uitestPyQt5.py中的类 
from PyQt5 import QtGui, QtWidgets,QtCore 
from PyQt5.QtGui import QImage,QPixmap 
import cv2

class Mywindow(QtWidgets.QMainWindow, Ui_MainWindow): 
# 建立的是Main Window项目,故此处导入的是QMainWindow 
# class myform(QWidget,Ui_Form):如建立的是Widget项目,导入的是QWidget 
def init(self): 
super(Mywindow, self).init() 
self.setupUi(self)

def btn2(self):
self.textEdit.setText('Hello World!'+'\n') def btn1(self):
img=cv2.imread('c:\\lena.png')
self.label.setPixmap(QPixmap.fromImage(cvMatToQimg(img)))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

def cvMatToQimg(mat):#将opencv格式的文件转化为pyqt5的文件格式 
mat = cv2.cvtColor(mat, cv2.COLOR_BGR2RGB) 
#mat=cv2.cvtColor(mat,cv2.COLOR_BGR2HSV) 
#mat = cv2.cvtColor(mat, cv2.COLOR_BGR2GRAY) 
return QImage(mat.tostring(), mat.shape[1], mat.shape[0], mat.shape[2] * mat.shape[1], QtGui.QImage.Format_RGB888)

if name == ‘main‘: 
app = QtWidgets.QApplication(sys.argv) 
window = Mywindow() 
window.show() 
# window=myform() #如果是QWidget 
#windows.show() 
#app.exec_() 
sys.exit(app.exec_()) 
“` 
这段代码有我的一些程序在里面,基本的样式就是这样,其中的类和尾部的代码都是标准的,无需更改。 
其中的btn1和 btn2就是我们在QT窗体里指定的触发函数名。 
这段代码不多做解释,请自行度娘学习。

9 运行一下程序ctr F5 
 
点击两个按钮,可以看到图片和文本框的内容都发生了变化。 

这是项目目录里文件的情况。 

结语 
果断删除pycahrm,以后就是VS2017了。

后记 
在VS2017中,关于python各类库的更新在工具-python-环境设置中,选择“包”,就会出现各种已经pip过的库,可以增减和升级降级操作,非常方便。

宇宙最强VisualStudio2017配置pyQt5用于python3.6的UI界面工具(转)的更多相关文章

  1. Python+PyQT5的子线程更新UI界面的实例《新手必学》

    今天小编就为大家分享一篇Python+PyQT5的子线程更新UI界面的实例,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧子线程里是不能更新UI界面的,在移动端方面.Android的U ...

  2. 配置window下python3环境

    功能介绍 整理生信小知识库,一些技巧一些知识. 昨天 以下配置环境基于window操作系统,安装python3版本为例,推荐基础版配置. !   METHOD 1 (基础版) 官网下载对应电脑版本的p ...

  3. 史上最强maven配置详情

    史上最强maven配置详情 优点 对第三方依赖库进行了统一的版本管理 统一了构建过程 统一了项目的目录结构 构建 清理 : mvn clear 编译 : mvn compile 测试 : mvn te ...

  4. QT学习之windows下安装配置PyQt5

    windows下安装配置PyQt5 目录 为什么要学习QT 命令行安装PyQt5以及PyQt5-tools 配置QtDesigner.PyUIC及PyRcc 为什么要学习QT python下与界面开发 ...

  5. 宇宙最强spacemacs

    这个标题背后的潜台词其实是:逼格是什么炼成的? 此处省略一万字. Emacs就不多说了,神之编辑器,但其快捷键实在是....Evil.好啦,现在来了Spacemacs,结合Vim与Emacs二者的优点 ...

  6. Mac下安装配置Python2和Python3并相互切换使用 转

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u014259820/article/details/81023224 安装Python2 Mac系统 ...

  7. sql server 2005 链接服务器:未将服务器 配置为用于 RPC

    原文:sql server 2005 链接服务器:未将服务器 配置为用于 RPC  RPC: 远程过程调用(Remote Procedure Calls) --LinkedServer.Rpc 属性: ...

  8. 宇宙最强 IDE:VS 2019 正式发布

    作者:局长 来源:www.oschina.net/news/105629/ 如约而至,微软已于今天推出 Visual Studio 2019 正式版,一同发布的还有 Visual Studio 201 ...

  9. 乘风破浪,遇见Visual Studio 2022预览版(Preview),宇宙最强开发者工具首次迎来64位版本

    简介 众所周知,我们从官方新闻来看,对Visual Studio 2022最大的期待莫过于:其是首个64位的Visual Studio,这个宇宙最强开发者工具一脚迈入了新的阶段. https://vi ...

随机推荐

  1. Java EE之Hibernate异常总结【5】java.lang.StackOverflowError[栈溢出]

    Exception in thread "main" java.lang.StackOverflowError at java.lang.reflect.InvocationTar ...

  2. 论文笔记系列-Neural Architecture Search With Reinforcement Learning

    摘要 神经网络在多个领域都取得了不错的成绩,但是神经网络的合理设计却是比较困难的.在本篇论文中,作者使用 递归网络去省城神经网络的模型描述,并且使用 增强学习训练RNN,以使得生成得到的模型在验证集上 ...

  3. 在Mysql中查询两个时间段的差,可以是秒,天,星期,月份,年...

    SELECT TIMESTAMPDIFF(SECOND, now(), "2016-11-11 00:00:00") 语法为:TIMESTAMPDIFF(unit,datetime ...

  4. JS window对象的top、parent、opener含义介绍

    1.top该变更永远指分割窗口最高层次的浏览器窗口.如果计划从分割窗口的最高层次开始执行命令,就可以用top变量. 2.openeropener用于在window.open的页面引用执行该window ...

  5. VxWorks软件开发项目实例完全解析1-VxWorks简介

    1.前言 VxWorks是专门为实时嵌入式系统设计开发的32位操作系统.主要有如下特点: 实时性强 支持多任务 体积小可裁剪 支持多种CPU 支持网络通信串口通信 汇编+标准C的编程模式.支持C++ ...

  6. 如果你的ie内核浏览器总是缓冲数据的话

    如果你的ie内核浏览器总是缓冲数据的话 运行cmd,输入netsh winsock reset wincock是支持多种协议的网络编程接口 因为ie内核的浏览器的一些设置和插件可能会被其他软件篡改,所 ...

  7. div里 datapicker显示异常的情况之一

    现象:datepicker控价显示一半 因为Div高度太小所以设置一个最小高度min-height这样就可以让时间控价显示完整了.

  8. mysql系列九、mysql语句执行过程及运行原理(分组查询和关联查询原理)

    一.背景介绍 了解一个sql语句的执行过程,了解一部分都做了什么,更有利于对sql进行优化,因为你知道它的每一个连接.where.分组.子查询是怎么运行的,都干了什么,才会知道怎么写是不合理的. 大致 ...

  9. cocos2d-x播放视频的处理

    cocos2d-x是支持直接播放视频的,用的是Native端的播放器,视频的默认层级是在cocos的层级之上,如果是想让视频上面有cocos的控件,只能将视频的UI层级放在最下面,这个方法网上已经有比 ...

  10. centos中进程管理工具

    进程管理:  二进制的格式为ELF,是CPU指令集中的指令  程序=指令+数据,  进程是程序的副本,可以有多个  内核是一个资源调度监视器  Linux是抢占式多任务  内存被事先划分成多个相同大小 ...