qt listview用法(107PythonPyQt5 ListView基本用法实例)

在前一文中有讲到TableView的基本用法,详细可以参看:106.Python——PyQt5 TableView基本用法实例。本文主要想通过实例演示一下ListView组件用法,它主要用来以列表形式来呈现数据。 实现想法:...

在前一文中有讲到TableView的基本用法,详细可以参看:106.Python——PyQt5 TableView基本用法实例。本文主要想通过实例演示一下ListView组件用法,它主要用来以列表形式来呈现数据。

实现想法:获取当前目录下的图像文件路径,并在ListView中呈现,选择文件,显示图像。

一、界面设计

两个元素:一个ListView组件:名称:lstimg,一个label组件:名称:lblimg,用来显示图像。(页面布局自适应)

107.Python——PyQt5 ListView基本用法实例

UI

二、功能实现

1、PyQt应用程序基本框架代码:

包含基本引用、主窗口类、程序入口。

import sysimport o**rom PyQt5 import QtCore, QtGui, QtWidget**rom Ui_listview import Ui_MainWindowclass MainWindow(QtWidgets.QMainWindow,Ui_MainWindow): def __init__(self): super().__init__() self.setupUi(self)if __name__ == '__main__': app=QtWidgets.QApplication(sys.argv) MyWindow=MainWindow() MyWindow.setWindowTitle('ListView') MyWindow.show() sys.exit(app.exec_())

2、功能实现(完整代码)

import sysimport o**rom PyQt5 import QtCore, QtGui, QtWidget**rom Ui_listview import Ui_MainWindowclass MainWindow(QtWidgets.QMainWindow,Ui_MainWindow): def __init__(self): super().__init__() self.setupUi(self) #获取当前目录 curdir=os.path.abspath(os.curdir) #获取当前目录下的所有图片文件 lstimg=["选择文件夹"] for root,dir,file in os.walk(curdir): for f in file: if os.path.splitext(f)[1] in ['.jpg','.png','.bmp']: lstimg.append(os.path.join(root,f)) #把图片文件列表放到listview中 slm=QtCore.QStringListModel() slm.setStringList(lstimg) self.lstimg.setModel(slm) # label控件的鼠标注单击事件(没有槽函数) self.lblimg.mousePressEvent=self.lblimg_clicked #图片列表单击事件 def on_lstimg_clicked(self,index): #获取当前图片文件名 self.imgname=self.lstimg.model().stringList()[index.row()] if self.imgname=="选择文件夹": #打开选择文件夹对话框 dirname=QtWidgets.QFileDialog.getExistingDirectory(self,'选择文件夹') lstimg=["选择文件夹"] for root,dir,file in os.walk(dirname): for f in file: if os.path.splitext(f)[1] in ['.jpg','.png','.bmp']: lstimg.append(os.path.join(root,f)) #把图片文件列表放到listview中 slm=QtCore.QStringListModel() slm.setStringList(lstimg) self.lstimg.setModel(slm) else: #设置lblimg的大小和位置 self.lblimg.setGeometry(self.lstimg.width()+10,0,self.width()-self.lstimg.width(),self.lstimg.height()) #设置图像大小自适应控件大小并显示图像 self.lblimg.setPixmap(QtGui.QPixmap.fromImage(QtGui.QImage(self.imgname)).scaled(self.lblimg.width(), self.lblimg.height(),QtCore.Qt.KeepAspectRatio)) self.statusBar().showMessage(self.imgname) #图片单击事件 def lblimg_clicked(self,event): #获取当前图片大小 #获取图像的宽高 img=QtGui.QImage(self.imgname) h,w,c=img.height(),img.width(),img.format() self.statusBar().showMessage("(w,h,c):"+str(w)+","+str(h)+","+str(c)) if __name__ == '__main__': app=QtWidgets.QApplication(sys.argv) MyWindow=MainWindow() MyWindow.setWindowTitle('ListView') MyWindow.show() sys.exit(app.exec_()) 三、运行效果107.Python——PyQt5 ListView基本用法实例

选择图像文件,显示图像

107.Python——PyQt5 ListView基本用法实例

选择图像文件,显示图像

107.Python——PyQt5 ListView基本用法实例

单击图像,显示图像大小

本文也只是演示一下ListView组件+Label显示图像的基本用法,更多用法可以参看帮助文档。

qt listview用法(107PythonPyQt5 ListView基本用法实例)

  • 发表于 2022-12-13 19:52:52
  • 阅读 ( 736 )
  • 分类:科技

0 条评论

请先 登录 后评论
好呀
好呀

487 篇文章

你可能感兴趣的文章

相关问题