vs2017 + Anaconda + opencv + pyqt5 环境配置及简单实现

前言:站在 宇宙最强VisualStudio2017配置pyQt5用于python3.6的UI界面工具 的基础上

因为软件的更新太快,这篇文章的内容有些已不适用,我也踩了几个坑,才正常调试出程序

一、安装

    vs2017 (已集成python3.6)

    Anaconda (包含了Qt Designer、PyUIC5、PyRCC5,安装时勾选环境)

    Opencv  (pip install opencv-python 或者 pip3 install opencv-python)

    PyQt5 (pip install pyqt5 或者 pip3 install pyqt5)

二、配置 (vs2017和Anaconda)

    1、vs2017中  菜单栏 --> 工具 --> 外部工具 --> 添加

            标题:QtDesigner

            命令:D:\ProgramData\Anaconda3\Library\bin\designer.exe (这是我的Anaconda安装目录

            初始目录:$(ItemDir)

    2、再次添加            

            标题:PyUIC5

            命令:D:\ProgramData\Anaconda3\Library\bin\pyuic5.bat (这是我的Anaconda安装目录)

            参数:$(ItemFileName).ui -o $(ItemFileName).py

            初始目录:$(ItemDir)

    3、再次添加           

            标题:PyRCC5 (设计有资源文件时转xxx.py文件)

            命令:D:\ProgramData\Anaconda3\Library\bin\pyrcc5.bat (这是我的Anaconda安装目录)

            参数:$(ItemFileName).ui -o $(ItemFileName).py

            初始目录:$(ItemDir)


三、设计界面及运行

    1、vs2017新建一个项目,Python应用程序

vs2017 + Anaconda + opencv + pyqt5 环境配置及简单实现_第1张图片        

    2、vs2017 --> 菜单栏 --> 工具 --> QtDesigner,拖入两个PushButton,一个Label, 一个textEdit,如图:

vs2017 + Anaconda + opencv + pyqt5 环境配置及简单实现_第2张图片


    3、另存为helloworld_form.ui到工程目录并将添加到工程目录中,选中helloworld_form.ui文件

vc2017 --> 菜单栏 --> 工具 --> PyUIC5 ,会在同级目录下生成helloworld_form.py文件,将helloworld_form.py添加到工程中

如图:

vs2017 + Anaconda + opencv + pyqt5 环境配置及简单实现_第3张图片


    4、在工程中新建一个Python文件,命名为main.py,写入如下代码:

import sys
import cv2
from helloworld_form import Ui_MainWindow
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtGui import QImage,QPixmap
 
class MyWindow(QMainWindow, Ui_MainWindow):
	def __init__(self, *args, **kwargs):
		super().__init__(*args, **kwargs)
		self.setupUi(self)
		self.pushButton.clicked.connect(self.btn1)
		self.pushButton_2.clicked.connect(self.btn2)

	def cvMat2Qimg(self, mat):
		mat = cv2.cvtColor(mat, cv2.COLOR_BGR2RGB) 
		return QImage(mat.tostring(), mat.shape[1], mat.shape[0], mat.shape[2] * mat.shape[1], QImage.Format_RGB888)

	num = 0

	def btn1(self):
		img = cv2.imread('E:\\ProjectsPython\\AI\\one.jpg') #opencv读入图片
		self.label.setPixmap(QPixmap.fromImage(self.cvMat2Qimg(img))) #opencv格式转换成pyqt格式
		self.label.setScaledContents(1) #自适应大小
		self.num += 1
		self.setWindowTitle("按钮被点击了 {0} 次".format(self.num)) #改变窗体的名称
		return None

	def btn2(self):
		self.textEdit.append("hello world") 
		self.num += 1
		self.setWindowTitle("按钮被点击了 {0} 次".format(self.num)) #改变窗体的名称
		return None


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

    5、运行结果

        vc2017 --> 菜单栏 --> 调试 --> 在Python交互中执行文件

vs2017 + Anaconda + opencv + pyqt5 环境配置及简单实现_第4张图片


你可能感兴趣的:(Python)