Loading ui/drawingpanel.py +5 −5 Original line number Diff line number Diff line Loading @@ -64,7 +64,7 @@ class InpaintPanel(Widget): super().__init__(*args, **kwargs) self.inpainter_panel = inpainter_panel self.thicknessSlider = PaintQSlider(self.tr('pen thickness ') + 'value px') self.thicknessSlider = PaintQSlider() self.thicknessSlider.setRange(MIN_PEN_SIZE, MAX_PEN_SIZE) self.thicknessSlider.valueChanged.connect(self.on_thickness_changed) Loading Loading @@ -118,10 +118,10 @@ class PenConfigPanel(Widget): colorChanged = Signal(list) def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) self.thicknessSlider = PaintQSlider(self.tr('pen thickness ') + 'value px') self.thicknessSlider = PaintQSlider() self.thicknessSlider.setRange(MIN_PEN_SIZE, MAX_PEN_SIZE) self.thicknessSlider.valueChanged.connect(self.on_thickness_changed) self.alphaSlider = PaintQSlider(self.tr('alpha value') + ' value') self.alphaSlider = PaintQSlider() self.alphaSlider.setRange(0, 255) self.alphaSlider.setValue(255) self.alphaSlider.valueChanged.connect(self.on_alpha_changed) Loading Loading @@ -193,7 +193,7 @@ class RectPanel(Widget): self.inpainter_panel = inpainter_panel self.dilate_label = ToolNameLabel() self.dilate_label.setText(self.tr('Dilate')) self.dilate_slider = PaintQSlider(self.tr('kernel size: ') + 'value px') self.dilate_slider = PaintQSlider() self.dilate_slider.setRange(0, 100) self.dilate_slider.valueChanged.connect(self.dilate_ksize_changed) self.methodComboBox = QComboBox() Loading Loading @@ -337,7 +337,7 @@ class DrawingPanel(Widget): self.toolConfigStackwidget.addWidget(self.penConfigPanel) self.toolConfigStackwidget.addWidget(self.rectPanel) self.maskTransperancySlider = PaintQSlider(' value%') self.maskTransperancySlider = PaintQSlider() self.maskTransperancySlider.valueChanged.connect(self.canvas.setMaskTransparencyBySlider) masklayout = QHBoxLayout() masklayout.addWidget(ToolNameLabel(220, self.tr('Mask Transparency'))) Loading ui/framelesswindow/fw_qt6/windows/__init__.py +3 −1 Original line number Diff line number Diff line Loading @@ -3,11 +3,14 @@ import sys from ctypes import cast from ctypes.wintypes import LPRECT, MSG from pkg_resources import parse_version import win32con import win32gui from PyQt6.QtCore import Qt from PyQt6.QtGui import QCloseEvent, QCursor from PyQt6.QtWidgets import QApplication, QWidget from PyQt6.QtCore import PYQT_VERSION_STR installed_version = PYQT_VERSION_STR # from ..titlebar import TitleBar from ..utils import win32_utils as win_utils Loading Loading @@ -42,7 +45,6 @@ class WindowsFramelessWindow(QWidget): # solve issue #5 self.windowHandle().screenChanged.connect(self.__onScreenChanged) self.resize(500, 500) # self.titleBar.raise_() # def setTitleBar(self, titleBar): Loading ui/mainwindow.py +0 −3 Original line number Diff line number Diff line Loading @@ -57,7 +57,6 @@ class MainWindow(FramelessWindow): super().__init__(*args, **kwargs) self.setWindowFlags(self.windowFlags() | Qt.WindowType.FramelessWindowHint) self.app = app self.setupThread() self.setupUi() Loading @@ -79,8 +78,6 @@ class MainWindow(FramelessWindow): self.imgtrans_progress_msgbox.setStyleSheet(styleSheet) self.export_doc_thread.progress_bar.setStyleSheet(styleSheet) self.import_doc_thread.progress_bar.setStyleSheet(styleSheet) # sel_menu_size = self.selectext_minimenu.sizeHint() # self.selectext_minimenu.setFixedWidth(sel_menu_size.width()) return super().setStyleSheet(styleSheet) def setupThread(self): Loading ui/mainwindowbars.py +4 −6 Original line number Diff line number Diff line Loading @@ -442,10 +442,8 @@ class TitleBar(Widget): def onMaxBtnClicked(self): if self.mainwindow.isMaximized(): self.mainwindow.showNormal() self.mainwindow.updateGeometry() else: self.mainwindow.showMaximized() self.mainwindow.updateGeometry() def onMinBtnClicked(self): self.mainwindow.showMinimized() Loading Loading @@ -543,12 +541,12 @@ class BottomBar(Widget): self.textblockChecker.setObjectName('TextblockChecker') self.textblockChecker.clicked.connect(self.onTextblockCheckerClicked) self.originalSlider = PaintQSlider(self.tr("Original image transparency: ") + "value%", Qt.Orientation.Horizontal, self, minimumWidth=90) self.originalSlider.setFixedWidth(130) self.originalSlider = PaintQSlider(self.tr("Original image transparency"), Qt.Orientation.Horizontal, self, minimumWidth=90) self.originalSlider.setFixedWidth(150) self.originalSlider.setRange(0, 100) self.textlayerSlider = PaintQSlider(self.tr("Lettering layer transparency: ") + "value%", Qt.Orientation.Horizontal, self, minimumWidth=90) self.textlayerSlider.setFixedWidth(130) self.textlayerSlider = PaintQSlider(self.tr("Lettering layer transparency"), Qt.Orientation.Horizontal, self, minimumWidth=90) self.textlayerSlider.setFixedWidth(150) self.textlayerSlider.setValue(100) self.textlayerSlider.setRange(0, 100) Loading ui/stylewidgets.py +38 −23 Original line number Diff line number Diff line Loading @@ -216,7 +216,7 @@ class PaintQSlider(QSlider): mouse_released = Signal() def __init__(self, draw_content, orientation=Qt.Orientation.Horizontal, *args, **kwargs): def __init__(self, draw_content = None, orientation=Qt.Orientation.Horizontal, *args, **kwargs): super(PaintQSlider, self).__init__(orientation, *args, **kwargs) self.draw_content = draw_content self.pressed: bool = False Loading Loading @@ -246,50 +246,65 @@ class PaintQSlider(QSlider): rect = self.style().subControlRect( QStyle.CC_Slider, option, QStyle.SC_SliderHandle, self) value = self.value() # 画中间白色线条 painter.setPen(QColor(85,85,96)) painter.setBrush(QColor(85,85,96)) if self.orientation() == Qt.Orientation.Horizontal: y = self.height() / 2 painter.drawLine(QPointF(0, y), QPointF(self.width(), y)) painter.drawLine(QPointF(4, y), QPointF(self.width() - 8, y)) else: x = self.width() / 2 painter.drawLine(QPointF(x, 0), QPointF(x, self.height())) # 画圆 painter.setPen(Qt.NoPen) r = rect.height() // 2 vr = int((value - self.minimum()) / (self.maximum() - self.minimum()) * r) rect = QRect(rect.x() - vr, rect.y(), rect.width(), rect.width()) if option.state & QStyle.State_MouseOver: # 双重圆 # 半透明大圆 r = rect.height() / 2 painter.setBrush(QColor(*C.SLIDERHANDLE_COLOR,100)) painter.drawRoundedRect(rect, r, r) # 实心小圆(上下左右偏移4) rect = rect.adjusted(4, 4, -4, -4) r = rect.height() / 2 rect_inner = rect.adjusted(4, 4, -4, -4) r = rect_inner.height() // 2 painter.setBrush(QColor(*C.SLIDERHANDLE_COLOR,255)) painter.drawRoundedRect(rect, r, r) if self.draw_content is not None: painter.drawRoundedRect(rect_inner, r, r) painter.setPen(QColor(*C.SLIDERHANDLE_COLOR,255)) font = painter.font() font.setPointSize(8) fm = QFontMetrics(font) painter.setFont(font) draw_content = self.draw_content.replace("value", str(self.value())) textw = fm.width(draw_content) if self.orientation() == Qt.Orientation.Horizontal: # 在上方绘制文字 x, y = rect.x() - textw/2 + rect.width()/2, rect.y() - rect.height() x = min(max(0, x), self.width()-textw) # x = rect.x() is_hor = self.orientation() == Qt.Orientation.Horizontal if is_hor: # 在上方绘制文字 x, y = rect.x(), rect.y() dx, dy = x, y if value < (self.maximum() + self.minimum()) / 2: dx += rect.width() else: dx -= rect.width() else: # 在左侧绘制文字 x, y = rect.x() - rect.width(), rect.y() painter.drawText( dx, self.height() - fm.height(), str(value), ) if self.draw_content is not None: painter.drawText( int(x), int(y)-10, textw, rect.height()+20, Qt.AlignmentFlag.AlignCenter, self.draw_content.replace("value", str(self.value())) 0, dy, self.draw_content, ) else: # 实心圆 rect = rect.adjusted(4, 4, -4, -4) r = rect.height() / 2 r = rect.height() // 2 painter.setBrush(QColor(*C.SLIDERHANDLE_COLOR,200)) painter.drawRoundedRect(rect, r, r) Loading Loading
ui/drawingpanel.py +5 −5 Original line number Diff line number Diff line Loading @@ -64,7 +64,7 @@ class InpaintPanel(Widget): super().__init__(*args, **kwargs) self.inpainter_panel = inpainter_panel self.thicknessSlider = PaintQSlider(self.tr('pen thickness ') + 'value px') self.thicknessSlider = PaintQSlider() self.thicknessSlider.setRange(MIN_PEN_SIZE, MAX_PEN_SIZE) self.thicknessSlider.valueChanged.connect(self.on_thickness_changed) Loading Loading @@ -118,10 +118,10 @@ class PenConfigPanel(Widget): colorChanged = Signal(list) def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) self.thicknessSlider = PaintQSlider(self.tr('pen thickness ') + 'value px') self.thicknessSlider = PaintQSlider() self.thicknessSlider.setRange(MIN_PEN_SIZE, MAX_PEN_SIZE) self.thicknessSlider.valueChanged.connect(self.on_thickness_changed) self.alphaSlider = PaintQSlider(self.tr('alpha value') + ' value') self.alphaSlider = PaintQSlider() self.alphaSlider.setRange(0, 255) self.alphaSlider.setValue(255) self.alphaSlider.valueChanged.connect(self.on_alpha_changed) Loading Loading @@ -193,7 +193,7 @@ class RectPanel(Widget): self.inpainter_panel = inpainter_panel self.dilate_label = ToolNameLabel() self.dilate_label.setText(self.tr('Dilate')) self.dilate_slider = PaintQSlider(self.tr('kernel size: ') + 'value px') self.dilate_slider = PaintQSlider() self.dilate_slider.setRange(0, 100) self.dilate_slider.valueChanged.connect(self.dilate_ksize_changed) self.methodComboBox = QComboBox() Loading Loading @@ -337,7 +337,7 @@ class DrawingPanel(Widget): self.toolConfigStackwidget.addWidget(self.penConfigPanel) self.toolConfigStackwidget.addWidget(self.rectPanel) self.maskTransperancySlider = PaintQSlider(' value%') self.maskTransperancySlider = PaintQSlider() self.maskTransperancySlider.valueChanged.connect(self.canvas.setMaskTransparencyBySlider) masklayout = QHBoxLayout() masklayout.addWidget(ToolNameLabel(220, self.tr('Mask Transparency'))) Loading
ui/framelesswindow/fw_qt6/windows/__init__.py +3 −1 Original line number Diff line number Diff line Loading @@ -3,11 +3,14 @@ import sys from ctypes import cast from ctypes.wintypes import LPRECT, MSG from pkg_resources import parse_version import win32con import win32gui from PyQt6.QtCore import Qt from PyQt6.QtGui import QCloseEvent, QCursor from PyQt6.QtWidgets import QApplication, QWidget from PyQt6.QtCore import PYQT_VERSION_STR installed_version = PYQT_VERSION_STR # from ..titlebar import TitleBar from ..utils import win32_utils as win_utils Loading Loading @@ -42,7 +45,6 @@ class WindowsFramelessWindow(QWidget): # solve issue #5 self.windowHandle().screenChanged.connect(self.__onScreenChanged) self.resize(500, 500) # self.titleBar.raise_() # def setTitleBar(self, titleBar): Loading
ui/mainwindow.py +0 −3 Original line number Diff line number Diff line Loading @@ -57,7 +57,6 @@ class MainWindow(FramelessWindow): super().__init__(*args, **kwargs) self.setWindowFlags(self.windowFlags() | Qt.WindowType.FramelessWindowHint) self.app = app self.setupThread() self.setupUi() Loading @@ -79,8 +78,6 @@ class MainWindow(FramelessWindow): self.imgtrans_progress_msgbox.setStyleSheet(styleSheet) self.export_doc_thread.progress_bar.setStyleSheet(styleSheet) self.import_doc_thread.progress_bar.setStyleSheet(styleSheet) # sel_menu_size = self.selectext_minimenu.sizeHint() # self.selectext_minimenu.setFixedWidth(sel_menu_size.width()) return super().setStyleSheet(styleSheet) def setupThread(self): Loading
ui/mainwindowbars.py +4 −6 Original line number Diff line number Diff line Loading @@ -442,10 +442,8 @@ class TitleBar(Widget): def onMaxBtnClicked(self): if self.mainwindow.isMaximized(): self.mainwindow.showNormal() self.mainwindow.updateGeometry() else: self.mainwindow.showMaximized() self.mainwindow.updateGeometry() def onMinBtnClicked(self): self.mainwindow.showMinimized() Loading Loading @@ -543,12 +541,12 @@ class BottomBar(Widget): self.textblockChecker.setObjectName('TextblockChecker') self.textblockChecker.clicked.connect(self.onTextblockCheckerClicked) self.originalSlider = PaintQSlider(self.tr("Original image transparency: ") + "value%", Qt.Orientation.Horizontal, self, minimumWidth=90) self.originalSlider.setFixedWidth(130) self.originalSlider = PaintQSlider(self.tr("Original image transparency"), Qt.Orientation.Horizontal, self, minimumWidth=90) self.originalSlider.setFixedWidth(150) self.originalSlider.setRange(0, 100) self.textlayerSlider = PaintQSlider(self.tr("Lettering layer transparency: ") + "value%", Qt.Orientation.Horizontal, self, minimumWidth=90) self.textlayerSlider.setFixedWidth(130) self.textlayerSlider = PaintQSlider(self.tr("Lettering layer transparency"), Qt.Orientation.Horizontal, self, minimumWidth=90) self.textlayerSlider.setFixedWidth(150) self.textlayerSlider.setValue(100) self.textlayerSlider.setRange(0, 100) Loading
ui/stylewidgets.py +38 −23 Original line number Diff line number Diff line Loading @@ -216,7 +216,7 @@ class PaintQSlider(QSlider): mouse_released = Signal() def __init__(self, draw_content, orientation=Qt.Orientation.Horizontal, *args, **kwargs): def __init__(self, draw_content = None, orientation=Qt.Orientation.Horizontal, *args, **kwargs): super(PaintQSlider, self).__init__(orientation, *args, **kwargs) self.draw_content = draw_content self.pressed: bool = False Loading Loading @@ -246,50 +246,65 @@ class PaintQSlider(QSlider): rect = self.style().subControlRect( QStyle.CC_Slider, option, QStyle.SC_SliderHandle, self) value = self.value() # 画中间白色线条 painter.setPen(QColor(85,85,96)) painter.setBrush(QColor(85,85,96)) if self.orientation() == Qt.Orientation.Horizontal: y = self.height() / 2 painter.drawLine(QPointF(0, y), QPointF(self.width(), y)) painter.drawLine(QPointF(4, y), QPointF(self.width() - 8, y)) else: x = self.width() / 2 painter.drawLine(QPointF(x, 0), QPointF(x, self.height())) # 画圆 painter.setPen(Qt.NoPen) r = rect.height() // 2 vr = int((value - self.minimum()) / (self.maximum() - self.minimum()) * r) rect = QRect(rect.x() - vr, rect.y(), rect.width(), rect.width()) if option.state & QStyle.State_MouseOver: # 双重圆 # 半透明大圆 r = rect.height() / 2 painter.setBrush(QColor(*C.SLIDERHANDLE_COLOR,100)) painter.drawRoundedRect(rect, r, r) # 实心小圆(上下左右偏移4) rect = rect.adjusted(4, 4, -4, -4) r = rect.height() / 2 rect_inner = rect.adjusted(4, 4, -4, -4) r = rect_inner.height() // 2 painter.setBrush(QColor(*C.SLIDERHANDLE_COLOR,255)) painter.drawRoundedRect(rect, r, r) if self.draw_content is not None: painter.drawRoundedRect(rect_inner, r, r) painter.setPen(QColor(*C.SLIDERHANDLE_COLOR,255)) font = painter.font() font.setPointSize(8) fm = QFontMetrics(font) painter.setFont(font) draw_content = self.draw_content.replace("value", str(self.value())) textw = fm.width(draw_content) if self.orientation() == Qt.Orientation.Horizontal: # 在上方绘制文字 x, y = rect.x() - textw/2 + rect.width()/2, rect.y() - rect.height() x = min(max(0, x), self.width()-textw) # x = rect.x() is_hor = self.orientation() == Qt.Orientation.Horizontal if is_hor: # 在上方绘制文字 x, y = rect.x(), rect.y() dx, dy = x, y if value < (self.maximum() + self.minimum()) / 2: dx += rect.width() else: dx -= rect.width() else: # 在左侧绘制文字 x, y = rect.x() - rect.width(), rect.y() painter.drawText( dx, self.height() - fm.height(), str(value), ) if self.draw_content is not None: painter.drawText( int(x), int(y)-10, textw, rect.height()+20, Qt.AlignmentFlag.AlignCenter, self.draw_content.replace("value", str(self.value())) 0, dy, self.draw_content, ) else: # 实心圆 rect = rect.adjusted(4, 4, -4, -4) r = rect.height() / 2 r = rect.height() // 2 painter.setBrush(QColor(*C.SLIDERHANDLE_COLOR,200)) painter.drawRoundedRect(rect, r, r) Loading