pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
程序员文章站
2022-04-28 16:43:57
1:listwidget 以滚动窗口显示文件下的所有文件:
self.listwidget = qtwidgets.qlistwidget(self...
1:listwidget 以滚动窗口显示文件下的所有文件:
self.listwidget = qtwidgets.qlistwidget(self.gridlayoutwidget) self.listwidget.setmaximumsize(qtcore.qsize(16777215, 400)) self.listwidget.setobjectname("listwidget") 以上代码都是以qtdesigner画出来自动生成的 self.listwidget.setverticalscrollbarpolicy(qtcore.qt.scrollbaralwayson#这里以滚动窗口显示) self.pushbutton_10.clicked.connect(tabwidget.viewlist)#关联事件 def viewlist(self): for i in os.listdir("./photo"): self.listwidget.additem("./photo"+"/"+i)
2:点击列表里的item能够返回item名称并显示图片
self.listwidget.currentitemchanged.connect(tabwidget.image)#这是点击item会返回item的名称:ps我使用qtdesigner绘制的tabwidget。 def image(): print(self.listwidget.currentitem().text()) imagefile=self.listwidget.currentitem().text() png = qtgui.qpixmap(imagefile).scaled(self.label.width(), self.label.height()) self.label.setpixmap(png) #在lable上显示图片
3:在滚动窗口中显示文件中的所有图像
这部分先用qtdesigner 绘制了一块scrollarea, 使用scrollarea的好处是自动会生成滚动条 def suoluetu(self): names=[] positions = [(i, j) for i in range(4) for j in range(30)] for i in os.listdir(r"./photo"): names.append("./photo"+"/"+i) self.filewidget = qwidget() self.filewidget.setminimumsize(350, 1800) for position, names in zip(positions, names): lab = qlabel(self.filewidget) lab.setfixedsize(100,150) pix=qtgui.qpixmap(names) lab.setpixmap(pix) lab.move(100*position[0]+50,150*position[1]+70)#这部分是我自己瞎写的 self.scrollarea.setwidget(self.filewidget) 一开始采用的gridlayout显示的图片效果也还不错,但是不能滚动画面 后来采用这种方法 很遗憾窗口中的图片不能点击,就不能对相应的图片进行分析 所以我觉得还是应该采用listwidget的方式显示图片
以上这篇pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
上一篇: PHP面向对象类型约束用法分析
下一篇: 梁晋争霸柏乡之战:后梁从此一蹶不振!