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)
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)