e554cf55 by 柴进

处理mac打包后粘贴图片缩略图不可见的问题

1 parent dd2274bf
...@@ -2047,6 +2047,34 @@ class ImageGeneratorWindow(QMainWindow): ...@@ -2047,6 +2047,34 @@ class ImageGeneratorWindow(QMainWindow):
2047 """从剪贴板粘贴图像""" 2047 """从剪贴板粘贴图像"""
2048 try: 2048 try:
2049 self.logger.info("开始粘贴剪贴板图片") 2049 self.logger.info("开始粘贴剪贴板图片")
2050 clipboard = QApplication.clipboard()
2051 mime_data = clipboard.mimeData()
2052
2053 # 优先处理文件URL(如 Finder 中复制的图片文件)
2054 if mime_data and mime_data.hasUrls():
2055 image_files = []
2056 for url in mime_data.urls():
2057 if url.isLocalFile():
2058 file_path = url.toLocalFile()
2059 self.logger.info(f"剪贴板包含文件: {file_path}")
2060 if Path(file_path).suffix.lower() in {'.png', '.jpg', '.jpeg', '.gif', '.bmp', '.webp'}:
2061 image_files.append(file_path)
2062
2063 if image_files:
2064 self.logger.info(f"从剪贴板文件URL添加 {len(image_files)} 张图片")
2065 added = 0
2066 for fp in image_files:
2067 if self.validate_image_file(fp):
2068 self.uploaded_images.append(fp)
2069 added += 1
2070 if added > 0:
2071 self.update_image_preview()
2072 self.image_count_label.setText(f"已选择 {len(self.uploaded_images)} 张")
2073 self.status_label.setText(f"● 已粘贴 {added} 张图片")
2074 self.status_label.setStyleSheet("QLabel { color: #34C759; }")
2075 return
2076
2077 # 没有文件URL,尝试获取剪贴板中的图像数据(如截图、从应用复制的图片)
2050 image = self._safe_get_clipboard_image() 2078 image = self._safe_get_clipboard_image()
2051 2079
2052 if image is None: 2080 if image is None:
...@@ -2054,7 +2082,7 @@ class ImageGeneratorWindow(QMainWindow): ...@@ -2054,7 +2082,7 @@ class ImageGeneratorWindow(QMainWindow):
2054 QMessageBox.information(self, "信息", "剪贴板中没有图片,请先复制一张图片") 2082 QMessageBox.information(self, "信息", "剪贴板中没有图片,请先复制一张图片")
2055 return 2083 return
2056 2084
2057 self.logger.info(f"成功获取剪贴板图像: {image.width()}x{image.height()}") 2085 self.logger.info(f"成功获取剪贴板图像数据: {image.width()}x{image.height()}")
2058 2086
2059 # 保存到临时文件 2087 # 保存到临时文件
2060 timestamp = datetime.now().strftime("%Y%m%d_%H%M%S_%f") 2088 timestamp = datetime.now().strftime("%Y%m%d_%H%M%S_%f")
...@@ -2070,8 +2098,6 @@ class ImageGeneratorWindow(QMainWindow): ...@@ -2070,8 +2098,6 @@ class ImageGeneratorWindow(QMainWindow):
2070 return 2098 return
2071 2099
2072 self.logger.info(f"剪贴板图片已保存: {temp_file_path}") 2100 self.logger.info(f"剪贴板图片已保存: {temp_file_path}")
2073
2074 # 走和"添加图片"按钮完全相同的路径
2075 self.uploaded_images.append(temp_file_path) 2101 self.uploaded_images.append(temp_file_path)
2076 self.update_image_preview() 2102 self.update_image_preview()
2077 self.image_count_label.setText(f"已选择 {len(self.uploaded_images)} 张") 2103 self.image_count_label.setText(f"已选择 {len(self.uploaded_images)} 张")
...@@ -2222,9 +2248,10 @@ class ImageGeneratorWindow(QMainWindow): ...@@ -2222,9 +2248,10 @@ class ImageGeneratorWindow(QMainWindow):
2222 self.logger.error(f"创建缩略图失败: {file_path}, 错误: {str(e)}", exc_info=True) 2248 self.logger.error(f"创建缩略图失败: {file_path}, 错误: {str(e)}", exc_info=True)
2223 2249
2224 # 强制刷新布局和滚动区域 2250 # 强制刷新布局和滚动区域
2225 self.img_container.adjustSize()
2226 self.img_layout.activate() 2251 self.img_layout.activate()
2227 self.img_scroll.update() 2252 self.img_container.adjustSize()
2253 self.img_container.repaint()
2254 self.img_scroll.viewport().repaint()
2228 2255
2229 # === 诊断日志:排查缩略图不可见问题 === 2256 # === 诊断日志:排查缩略图不可见问题 ===
2230 self.logger.info(f"[诊断] img_layout.count = {self.img_layout.count()}") 2257 self.logger.info(f"[诊断] img_layout.count = {self.img_layout.count()}")
......