pyqt5 绘图,pyqt5图片控件
这篇文章主要介绍了利用PythonPyQT5制作一个手绘图片生成器,可以将导入的彩色图片通过大蟒分析光源、灰度等操作生成手绘图片。感兴趣的可以跟随小编一起了解一下
手绘图片生成器可以将导入的彩色图片通过大蟒分析光源、灰度等操作生成手绘图片。
用户界面界面的整体部分代码块,用户界面界面的设计比较简单。效果在上面的图片展示。
类别HandImage(QWidget):
def __init__(self):
超级(HandImage,self).__init__()
self.init_ui()
def init_ui(self):
用户界面界面组件及布局
:返回:
self.setWindowTitle(手绘图片生成器公众号:[Python集中营])
self.setWindowIcon(QIcon(手绘图标. ico ))
self.setFixedWidth(500)
self.sou_im_path=QLineEdit()
自我。sou _ im _ path。设置只读(真)
自我。sou _ im _ path _ BTN=q按钮()
self.sou_im_path_btn.setText(源图片)
自我。BTN之路。点击了。连接(自我。BTN时钟)
self.dir_path=QLineEdit()
self.dir_path.setReadOnly(True)
self.dir_path_btn=QPushButton()
self.dir_path_btn.setText(存储)
自我。BTN的路径。点击了。连接(自我。目录路径BTN时钟)
self.start_btn=QPushButton()
self.start_btn.setText(开始绘制图像)
自我。从BTN出发。点击了。连接(自我。开始_ BTN _时钟)
grid=QGridLayout()
网格。添加小部件(自我。(0,0,1,1)
网格。添加小部件(自我。BTN,0,1,1,1)
grid.addWidget(self.dir_path,1,0,1,1)
网格。添加小部件(自我。BTN,1,1,1,1)
grid.addWidget(self.start_btn,2,0,1,2)
self.thread_=WorkThread(self)
自我。thread _。完成了。连接(自我。已完成)
self.setLayout(网格)
# UI界面上的槽函数
def sou_im_path_btn_clk(自我):
选择源图片并设置路径
:返回:
im _ path=qfiledialog。获取打开的文件名(self,os.getcwd(),打开图片,图像文件(*。jpg);图像文件(*。png))
自我。sou _ im _ path。settext(im _ path[0])
极好的目录_路径_ btn _时钟(自身):
选择存储路径并设置路径
:返回:
dir _ path=qfiledialog。getexistingdirectory(self,os.getcwd(),选择路径)
self.dir_path.setText(dir_path)
def start_btn_clk(self):
开始按钮绑定的槽函数
:返回:
self.start_btn.setEnabled(False)
self.thread_.start()
def finished(self, finished):
用于子线程传递完成信号的槽函数
:param finished: 信号变量
:return:
if finished is True:
self.start_btn.setEnabled(True)
其中绘图用到的第三方库只有两个,主要的还是Pillow图像处理库,还有就是numpy科学计算库用于一些数组计算等的操作。
将第三方的处理库导入到代码块中
from PIL import Image # 图像处理模块
创建用于专门手绘图像的子线程类,将UI界面的处理逻辑和生成图像的处理逻辑分开不至于产生无响应的卡死状态。
class WorkThread(QThread):
主要代码块实现都在上面了,下面将展示完整的代码
完整代码
# -*- coding:utf-8 -*-
以上就是Python+PyQT5实现手绘图片生成器的详细内容,更多关于Python PyQT5手绘图片生成器的资料请关注盛行IT软件开发工作室其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。