_icons.py 730 Bytes
"""桥层共享的占位图标生成。

旧 ImageGeneratorWindow.create_placeholder_icon 是 QWidget 实例方法(依赖 self),
桥层独立用一份不依赖 widget 实例的版本。
"""
from PySide6.QtCore import Qt
from PySide6.QtGui import QFont, QIcon, QPainter, QPixmap


def build_placeholder_icon(text: str, size: int = 120) -> QIcon:
    """绘制一张 size×size 的浅灰底中央文字占位图,用于历史项缩略图缺失时回退。"""
    pixmap = QPixmap(size, size)
    pixmap.fill(Qt.lightGray)

    painter = QPainter(pixmap)
    painter.setPen(Qt.black)
    painter.setFont(QFont("Arial", 10))
    painter.drawText(pixmap.rect(), Qt.AlignCenter, text)
    painter.end()

    return QIcon(pixmap)