1:listwidget 以滚动窗口显示文件下的所有文件:
1
2
3
4
5
6
7
8
9
|
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名称并显示图片
1
2
3
4
5
6
7
8
|
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:在滚动窗口中显示文件中的所有图像
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
这部分先用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,列表窗口,滚动窗口显示图片的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/songofsin/article/details/80919574