PySide6学习/教程/笔记(四):实现文件导入和切换图片

这两天又是课程又是作业又是摸鱼,根本没有时间学习!

经过众多的cv后,终于摸清楚了一点,并且实现出了文件导入功能和切换图片功能!

文件导入

采用QFileDialog类,我的感受是,灰常简单灰常好用,太好用啦!
直接贴代码

# 选择文件夹
folder_name = QFileDialog.getExistingDirectory(self, "选择文件夹","../")
# 选择文件
fname ,_ = QFileDialog.getOpenFileNames(self, 'Open Images', '../', 'Image files (*.png *.jpg)')

只要调用这个方法,窗口会自动弹出一个弹窗,然后选择你需要的文件夹或者文件就行了。QFileDialog.getExistingDirectory()方法会弹出一个弹窗,选择文件夹后,会将该文件夹的路径赋给folder_name,最后一个参数是弹窗打开时所处的位置。第二个QFileDialog.getOpenFileNames()返回的是一个数组,数组里每个元素是一个文件路径名,还可以设置过滤器,比如我是只选择png和jpg文件。

知道路径后,那下面就是小case了,找到显示图片的组件,我用的是QLabel,通过QLabel的setPixmap()或者setImage(),如下:

path = fname[0]
pix = QPixmap(path)
self.label_image.setPixmap(pix)

切换图片

还有需求,实现点击切换图片,后面还需要对图片进行操作。后面的很麻烦,不过切换图片肯定轻轻松松。

现在的实现效果如下:
PySide6学习/教程/笔记(四):实现文件导入和切换图片_第1张图片
中间的是图片,不是我写的ui!哪一天能手写vscode,估计我也是行业大牛了吧。

左边我用的是QListWidget组件,这是基于QListWidgetItem的,也就是说里面存放的都是QListWidgetItem,幸运的是,这玩意儿是有clicked的信号的,一开始vscode没给我找到,估计是哪个父类有的吧。

下面是每个item的click的槽函数,单击后,item会变成selected被选中状态。然后可以在listwidget那个组件里的selectedItems()中找到。

    def change_image(self):
        path = self.listWidget.selectedItems()[0].path
        pix = QPixmap(path)
        self.label_image.setPixmap(pix)

其实这里面还有很多东西学到的东西没讲,比如怎么去写槽函数,怎么去写把item加入listwidget中的函数,listwidget的继承关系是什么,它有哪些属性可以怎么设置等等。

但是我太累了,组会也要结束了。

你可能感兴趣的:(PySide,学习)