python做图片浏览器_保护隐私,用Python打造自己的照片浏览器

import sysimport osfrom PyQt5.QtWidgets import *from PyQt5.QtGui import QPixmap, QImage, QIconfrom PyQt5.QtCore import Qt, QSize, QRectdef list_files(folder):files = []filenames = []for f in os.listdir(folder):files.append(os.path.join(folder, f))filenames.append(f)return files, filenamesclass MyApp(QWidget):folder = ''def __init__(self, folder, parent=None):super(MyApp, self).__init__(parent)self.folder = folderself.sp = Nonelayout = QVBoxLayout()listView = QTableWidget()listView.setIconSize(QSize(300, 300))listView.horizontalHeader().setVisible(False)listView.verticalHeader().setVisible(False)listView.setShowGrid(False)listView.setColumnCount(5)listView.itemDoubleClicked.connect(self.show_pic)self.add_picture(listView)layout.addWidget(listView)self.setLayout(layout)self.resize(1500, 800)self.setWindowTitle(folder)def add_picture(self, listView):files, names = list_files(self.folder)listView.setRowCount(len(files) / 5)for i, file in enumerate(files):item = QTableWidgetItem()item.setFlags(Qt.ItemIsEnabled)icon = QIcon()qimg = QImage(file)icon.addPixmap(QPixmap.fromImage(qimg), QIcon.Normal, QIcon.Off)item.setIcon(icon)item.setText(names[i])listView.setRowHeight(i / 5, 300)listView.setColumnWidth(i % 5, 300)listView.setItem(i % 5, i / 5, item)def show_pic(self, item):path = item.text()self.sp = Single_Pic(os.path.join(self.folder, path))self.sp.setGeometry(QRect(self.x(), self.y(), self.sp.width(), self.sp.height()))self.sp.show()class Single_Pic(QWidget):def __init__(self, path):super().__init__()self.path = pathself.initUI()def initUI(self):label = QLabel(self)qimg = QImage(self.path)label.resize(qimg.width() / qimg.height() * 800, 800)self.resize(label.width(), label.height())label.setPixmap(QPixmap.fromImage(qimg).scaled(label.size(), Qt.KeepAspectRatio, Qt.SmoothTransformation))if __name__ == '__main__':app = QApplication(sys.argv)t = MyApp(sys.argv[1])t.show()sys.exit(app.exec_())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值