Esempio n. 1
0
    def dropEvent(self, event):
        # # 方法一:针对小图片
        # pixmap = QPixmap(event.mimeData().urls()[0].toLocalFile())
        # self.ui.LabPic.setPixmap(pixmap)
        #
        # # 方法二:小图片和PNG格式的大图片
        # img = QImage()
        # print(event.mimeData().urls()[0].toLocalFile())
        # img.load(event.mimeData().urls()[0].toLocalFile())
        # pixmap = QPixmap.fromImage(img.scaled(self.ui.LabPic.size(), Qt.KeepAspectRatio))
        # self.ui.LabPic.setPixmap(pixmap)

        # 方法三:小图片和大图片
        reader = QImageReader()
        print(event.mimeData().urls()[0].toLocalFile())
        reader.setFileName(event.mimeData().urls()[0].toLocalFile())
        reader.setDecideFormatFromContent(True)
        if reader.canRead():
            img = QImage(reader.read())
            pixmap = QPixmap.fromImage(
                img.scaled(self.ui.LabPic.size(), Qt.KeepAspectRatio))
            self.ui.LabPic.setPixmap(pixmap)
Esempio n. 2
0
    def get_archive_wallpapers(self):
        """
        Generator returning the date, path and copyright info (via db lookup) of each file found in the
        archive location.

        :rtype: QDate, unicode, unicode
        """
        image_reader = QImageReader()
        regex_date_split = re.compile(r'(\d{4})(\d{2})(\d{2})')

        copyright_info = self.copyright_db.get_all_info()
        archive_folder = self.settings.archive_location
        for filename in reversed([
                x for x in os.listdir(archive_folder)
                if re_archive_file.match(x)
        ]):
            year, month, day = list(
                map(int,
                    regex_date_split.findall(filename)[0]))
            wallpaper_date = QDate(year, month, day)
            wallpaper_copyright = copyright_info.get(
                '{0:04d}-{1:02d}-{2:02d}'.format(year, month, day), '')
            wallpaper_filename = os.path.join(str(archive_folder), filename)

            image_reader.setFileName(wallpaper_filename)
            image_size = image_reader.size()
            image_size.scale(QSize(200, 125), Qt.IgnoreAspectRatio)
            image_reader.setScaledSize(image_size)
            thumbnail_image = image_reader.read()
            if thumbnail_image.isNull():
                continue
            self.lw_wallpaper_history.add_item(thumbnail_image,
                                               wallpaper_date,
                                               wallpaper_copyright,
                                               archive_path=wallpaper_filename)
            self.app.processEvents()
        self.lw_wallpaper_history.sortItems(Qt.AscendingOrder)