该篇看一下如何使用QSlider,这个控件一般被我用来做一些字体、图片放大缩小的功能,既然说到这个控件,那就用最近学习的OpenCV一起来更深入的学习该控件吧。
一.环境配置
1.python 3.7.8
可直接进入官网下载安装:Download Python | Python.org
2.QT Designer
官方下载路径:Qt Designer Download for Windows and Mac
二.实例演示
1.直接用QT Designer 生成,如下图所示:
该GUI设计,主要功能是做一个图片模糊转换,这边左边是选择我们本地图片的一个按钮(1打开)即可获取本地路径下的图片,获取图片后显示在如下图所述的左边图片,按钮2即可将该图片调整为模糊属性显示在右边图片处,通过我们的QSlider控件往右边拖动来增加模糊度。
2.图片获取:
def open(self): # 读取文件,点击 pushButton 触发
self.Path, _ = QFileDialog.getOpenFileName(self, "../images/", "*.mp4 *.avi *.mov")
print("Open: ", self.Path)
return
执行该代码会打开本地文件的图片、视频类型文件,选择其文件。
def saveSlot(self): # 保存图像文件
# 选择存储文件
fileName, tmp = QFileDialog.getSaveFileName(self, "Save Image", "../images/", '*.png; *.jpg; *.tif')
if self.img1.size == 1:
return
# OpenCV 写入图像文件
ret = cv.imwrite(fileName, self.img1)
if ret:
print(fileName, self.img.shape)
return
选择了其图片或视频路径,执行上述代码则是将目标图片或视频文件写入到UI上面。
3.执行QSlider触发,让图片变模糊
def getHorizontalSliderValue(self):
self.sigma = max(self.horizontalSlider.value(),3) # 修改模糊尺度
ksize = (self.sigma, self.sigma)
print("HorizontalSlider=", self.sigma)
ksize = (self.sigma, self.sigma)
blur = cv.GaussianBlur(self.img1, ksize, 0)
self.refreshShow(blur, self.label_2) # 刷新显示
执行上述代码,输出如下所示:
三.总结
这样我们通过一个简单的case让我们更深入的了解了QSlider的使用,当然QSlider的作用远不只是如此,很多功能应用于不同的场景,可以根据自己的需要来尝试一下吧!
@Neng