python gui开发教程_OpenCV-Python入门教程7-PyQt编写GUI界面

以前,我总是用命令行来运行代码,这是不友好的。本文使用Python编写GUI界面和PyQt5编写图像处理程序。包括:打开或关闭相机,捕捉图片,阅读本地图片、灰度和大津阈值分割自动调节功能。使用Qt设计器设计接口。它带有蟒蛇。我用这个路径:D: \\ ProgramData \\ Anaconda3 \\图书馆\\ bin \\。如果是一个正常的Python环境中,您需要安装它自己。pip安装pyqt5-tools安装后,它应该是在Python安装目录下:xxx \\ Lib \\网站\\ pyqt5_tools \\生成一个简单的接口,importsysfrom importQApplication, QWidgetif __name__ = =的__main__:应用= QApplication窗口()= QWidget () (\u201CHello World !

打开界面设计在D: \\ ProgramData \\ Anaconda3 \\图书馆\\ bin \\,将会弹出一个窗口来创建一种新形式,我们直接单击\u201C创建\u201D(英文版本创建)的左侧是常用的接口控制Qt的\u201C小盒子\u201D,右边有一个控制财产\u201C属性编辑器\u201D窗口。在本例中,我们只使用\u201C按钮\u201D控制和\u201C标签\u201D控件。你可以调整它的大小150 x150在属性窗口中(您可以根据您的需要增加或减少):\u201C文本\u201D属性的文本显示在控制和控制的\u201C对象名\u201D属性名称需要修改,便于显示和代码调用。

这个函数被称为一个事件,它叫做槽连接在Qt。单击Edit信号\/插槽设计器工具栏上的按钮进入槽函数编辑界面,并单击\u201C编辑部件\u201D旁边恢复正常的观点:在弹出配置窗口中,您可以看到左边的按钮的共同活动。我们选择click事件\u201C点击()\u201D,然后添加一个槽函数命名为\u201CbtnOpenCamera_Clicked ():重复上述步骤,给五个按钮以添加五个槽函数,最终结果如下:按Ctrl + S保存文件。ui。我们需要把ui py代码。打开cmd命令行和界面切换到目录文件保存。有一个小技巧在Windows。你可以在地址栏中输入cmd目录切换到当前目录的一个步骤:执行此命令pyuic5 - o using_pyqt_create_生成一个文件,其中包含一个名为\u201CUi_MainWindow\u201D的类。

基于ui生成逻辑代码文件,也就是说,一旦ui文件改变了,它需要重新生成覆盖原始文件。创建一个新的存储逻辑代码。尽管代码很长,它很简单,不难理解。部分是重复的,而不是封装成一个函数(博主有能力有限)。如果你有兴趣,你可以尝试importsysimportcv2from PyQt5 importQtCore, QtGui, QtWidgetsfrom从进口进口* *从importQFileDialog QMainWindowfrom mainForm importUi_MainWindowclassPyQtMainEntry (QMainWindow Ui_MainWindow): def __init__(自我):超级().

_timer self._(自我(自我)。_queryFrame) self._ (30) defbtnOpenCamera_Clicked(自我):\u201C打开和关闭相机\u201D_camera_opened = _camera__camera_opened:(\u201C关闭相机\u201D)self._()其他:(打开相机)self._ () defbtnCapture_Clicked(自我):\u201C捕捉照片\u201D#相机不开放,不执行任何操作如果_camera_第二行代码几乎是相同的,你可以试着封装成一个函数行,关口,channelsbytesPerLine =频道*关口#当Qt显示一个图片,它需要先转换为QImgage类型QImg =打印大师(关口,行,bytesPerLine, _RGB888) ((QImg) .

scaled (())) defbtnGray_Clicked(自我):\u201CGrayization\u201D#如果没有捕获的照片,不执行操作如果不是hasattr(自我,\u201C捕获\u201D)(_RGB2GRAY)行,bytesPerLine =列#单通道灰度图像,所以你需要使用Format_Indexed8QImg =打印大师(、列、行、bytesPerLine, _Indexed8) ((QImg)。比例(()))defbtnThreshold_Clicked(自我):\u201C首先进行自动阈值分割\u201D的如果不是hasattr(自我,\u201C捕获\u201D):return_,(, 0255年,_BINARY _OTSU)行,bytesPerLine =列#阈值分割的图像也单通道,和Format_Indexed8QImg =打印大师(、列、行、bytesPerLine, _Indexed8) ((QImg) .

scaled (())) if __name__ = =\u201C__main__\u201D:()窗口= PyQtMainEntry () () (_ ())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值