VS2017+PyQt5环境配置以及第一个HellowPyQt5

VS2017+PyQt5环境配置

VS2017里使用PyQt5

csdn里有几篇文章可以参考,各有不完整,或不再适用最新版的VS2017 15.9.10。
这里特别整理记录一下。

VS2017的安装

为了简单起见,建议安装时,将python相关的都勾选上,尤其是选择了python模块后,安装页面右边的一些非默认勾选组件,都选上。

  1. 如果安装路径默认的话,那么安装完成后,python相关的在C:\Program Files (x86)\Microsoft Visual Studio\Shared
  2. 有anaconda3,也有Python36;
  3. 使用VS2017开发python时,可以选择使用自己喜欢的python环境,具体方法:
    在加载的解决方案中,右键Python环境,添加/删除Python环境
    VS2017+PyQt5环境配置以及第一个HellowPyQt5
  4. anaconda也是一个比较好的python环境。

以使用Python环境为例,说明配置PyQt5过程

  1. 查看是否安装了opencv-python,pyqt5,pyqt5-tools
    在命令行中,进入到此目录下 C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\Scripts,
    输入pip list
    PyQt5 整个Qt5的Python实现框架
    PyQt5-tools PyQt5开发的一些工具,例如GUI设计的designer,将ui转为py文件的pyuic.exe
  2. 缺少哪个,就安装哪个
    在刚才的Scripts目录下(或者已经将该目录添加到了PATH,就可以在任意目录),
    pip3 install -i https://mirrors.zte.com.cn/pypi/simple pyqt5 --trusted-host mirrors.zte.com.cn
    
    opencv-python,pyqt5-tools类似安装
  3. 安装完后,确认是否存在pyuic5.exe
    在C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\Scripts下应该有pyuic5.exe pyrcc5.exe pyqt5designer.exe
  4. 如果先安装pyqt5,本贴编写时下载的版本是5.12,但pyqt5-tools是5.11
    是否有不兼容的地方,待后续使用观察
  5. 利用VS2017的外部工具配置pyqt5的调用以及qt ui转换为py文件
  6. vs2017菜单栏的工具,弹出菜单中,选择外部工具:
    新建一个名字为QtDesigner的外部工具链接,如下图:
    VS2017+PyQt5环境配置以及第一个HellowPyQt5
    命令:找到安装好的pyqt5designer.exe,如果使用anaconda,anaconda3.6下安装的pyqt5的designer,文件名就是designer.exe
    参数:启动designer是默认打开生成的ui文件名,如果不设置,就是untitled,根据个人喜好,是否设置默认值。不设置此项则保存文件时,会提示输入文件名的。
    初始目录:默认保存ui文件的文件夹,一般设置为跟项目一样。
    类似过程,新建一个PyUIC5的外部工具链接:
    VS2017+PyQt5环境配置以及第一个HellowPyQt5
    命令:找到pyuic5.exe
    参数:默认将选中的ui文件,转换为py文件
    初始目录:一般设置为项目相同
    类似的,继续新建PyRCC5的链接:
    VS2017+PyQt5环境配置以及第一个HellowPyQt5
    命令:找到pyrcc5.exe
    参数:将选中的ui文件,转换为py文件
    初始目录:一般跟项目相同

上述3个新建工具界面中,
a、提示输入参数,勾选,则调用时会弹出确认框
b、使用输出窗口,勾选,则打开一个输出窗口,显示执行结果

至此,配置完成。

动手第一个vs2017下的pyqt5程序

  1. 新建一个python解决方案,设置好python环境
    可以选择python,也可以选择anacondaVS2017+PyQt5环境配置以及第一个HellowPyQt5
  2. VS2017的工具启动QtDesigner
    新建一个ui,并保存
    VS2017+PyQt5环境配置以及第一个HellowPyQt5
  3. 将刚才生成的ui加到项目中
    添加,现有文件,注意类型选所有
    VS2017+PyQt5环境配置以及第一个HellowPyQt5
    VS2017+PyQt5环境配置以及第一个HellowPyQt5
  4. 利用工具里的PyUIC5,将ui转为py
    选中刚加入的ui文件,工具=》PyUIC5
    这个ui文件,其实就是xml格式存储的VS2017+PyQt5环境配置以及第一个HellowPyQt5
    如果配置外部工具时,勾选了提示参数,则会弹出下图确认
    VS2017+PyQt5环境配置以及第一个HellowPyQt5
  5. 将转换出来的py文件添加到项目

VS2017+PyQt5环境配置以及第一个HellowPyQt5
VS2017+PyQt5环境配置以及第一个HellowPyQt5
6. 在应用程序的主py中,进行相关动作编码
本贴在HellowPyQt5InVS2017.py中添加处理代码


# -*- coding: utf-8 -*-

from HellowPyQt5InVS2017Form import Ui_Dialog
# import PyQt5

import sys
import cv2
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtGui import QImage, QPixmap

class MyWindow(QMainWindow, Ui_Dialog):
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.setupUi(self)
     self.pushButton.clicked.connect(self.OnPushButton1)
     
 num = 0

 def OnPushButton1(self):
     self.textEdit.append("HellowPyQt5")
     self.num += 1
     self.setWindowTitle("pushbutton has been clicked {0} times".format(self.num))
     return None

if __name__ == "__main__":
 app = QApplication(sys.argv)
 mainWindow = MyWindow()
 mainWindow.show()
 sys.exit(app.exec_())

  1. 执行结果
    VS2017+PyQt5环境配置以及第一个HellowPyQt5