Skip to content

Commit bc9c356

Browse files
committed
chore: rename _initToolTipManager() to _initToolTipRedirectEventFilter()
1 parent 509904c commit bc9c356

5 files changed

Lines changed: 109 additions & 8 deletions

File tree

examples/Gallery for siui/components/page_refactor/page_refactor.py

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,15 @@
88
from siui.components import SiDenseHContainer, SiDenseVContainer, SiTitledWidgetGroup
99
from siui.components.button import (
1010
SiCapsuleButton,
11+
SiCheckBox,
1112
SiCheckBoxRefactor,
1213
SiFlatButton,
1314
SiFlatButtonWithIndicator,
1415
SiLongPressButtonRefactor,
16+
SiOptionButton,
1517
SiProgressPushButton,
1618
SiPushButtonRefactor,
19+
SiRadioButton,
1720
SiRadioButtonR,
1821
SiRadioButtonWithAvatar,
1922
SiRadioButtonWithDescription,
@@ -33,7 +36,7 @@
3336

3437
from ..option_card import OptionCardPlaneForWidgetDemos
3538
from .example_menu import exampleSiRoundedMenu
36-
from .example_popover import exampleDatePickerPopover, exampleCalenderPickerPopover
39+
from .example_popover import exampleCalenderPickerPopover, exampleDatePickerPopover
3740

3841

3942
@contextmanager
@@ -347,6 +350,31 @@ def __init__(self, *args, **kwargs):
347350
container.addWidget(checkbox1)
348351
container.addWidget(checkbox2)
349352

353+
with createPanelCard(group, "多选框") as card:
354+
with createDenseContainer(card.body(), QBoxLayout.TopToBottom) as container:
355+
checkbox_1 = SiCheckBox(self)
356+
checkbox_1.setText("在时间不足时提醒我")
357+
358+
checkbox_2 = SiCheckBox(self)
359+
checkbox_2.setText("重复创建任务")
360+
361+
container.layout().setSpacing(16)
362+
container.addWidget(checkbox_1)
363+
container.addWidget(checkbox_2)
364+
365+
with createPanelCard(group, "单选框") as card:
366+
with createDenseContainer(card.body(), QBoxLayout.TopToBottom) as container:
367+
radio_button_1 = SiRadioButton(self)
368+
radio_button_1.setChecked(True)
369+
radio_button_1.setText("Load data when posible")
370+
371+
radio_button_2 = SiRadioButton(self)
372+
radio_button_2.setText("Never load data")
373+
374+
container.layout().setSpacing(16)
375+
container.addWidget(radio_button_1)
376+
container.addWidget(radio_button_2)
377+
350378
with createPanelCard(group, "带指示器的按钮") as card:
351379
with createDenseContainer(card.body(), QBoxLayout.LeftToRight) as container:
352380

siui/components/editbox.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
from siui.components.menu_ import SiRoundedMenu
2121
from siui.core import SiGlobal, createPainter
2222
from siui.core.animation import SiExpAnimationRefactor
23-
from siui.core.event_filter import WidgetTooltipRedirectEventFilter
23+
from siui.core.event_filter import WidgetToolTipRedirectEventFilter
2424
from siui.gui import SiFont
2525
from siui.typing import T_WidgetParent
2626

@@ -115,7 +115,7 @@ def _initStyleSheet(self) -> None:
115115
)
116116

117117
def _initTooltipRedirectEventFilter(self):
118-
self._tooltip_redirect_event_filter = WidgetTooltipRedirectEventFilter()
118+
self._tooltip_redirect_event_filter = WidgetToolTipRedirectEventFilter()
119119
self.installEventFilter(self._tooltip_redirect_event_filter)
120120

121121
def _initSignals(self) -> None:

siui/components/progress_bar_.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
from siui.core import createPainter
77
from siui.core.animation import SiExpAnimationRefactor
8-
from siui.core.event_filter import WidgetTooltipRedirectEventFilter
8+
from siui.core.event_filter import WidgetToolTipRedirectEventFilter
99
from siui.core.globals import toolTipWindow
1010
from siui.typing import T_WidgetParent
1111

@@ -60,7 +60,7 @@ def __init__(self, parent: T_WidgetParent = None) -> None:
6060

6161
self._initStyle()
6262
self._initSignal()
63-
self._initToolTipManager()
63+
self._initToolTipRedirectEventFilter()
6464

6565
def _initStyle(self) -> None:
6666
self.setContentsMargins(0, 8, 0, 8)
@@ -71,8 +71,8 @@ def _initSignal(self) -> None:
7171
self.valueChanged.connect(self._onValueChanged)
7272
self.stateChanged.connect(self._onStateChanged)
7373

74-
def _initToolTipManager(self) -> None:
75-
self._manager = WidgetTooltipRedirectEventFilter()
74+
def _initToolTipRedirectEventFilter(self) -> None:
75+
self._manager = WidgetToolTipRedirectEventFilter()
7676
self.installEventFilter(self._manager)
7777

7878
@pyqtProperty(QColor)

siui/core/event_filter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def eventFilter(self, obj: QWidget, event):
5151
return False
5252

5353

54-
class WidgetTooltipRedirectEventFilter(QObject):
54+
class WidgetToolTipRedirectEventFilter(QObject):
5555
"""
5656
忽略原版工具提示,并把工具提示发送到自定义工具提示窗口上,提供操作工具提示窗口的接口
5757
"""

siui/core/painter.py

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,79 @@ def getSuperRoundedRectPath(rect: QRectF,
107107
return _cachedGetSuperRoundedRectPath(rect_tuple, radius_x, radius_y, power, quality)
108108

109109

110+
def getRoundedRectPathQuad(rect: QRectF,
111+
radius_tl: float, radius_tr: float,
112+
radius_br: float, radius_bl: float) -> QPainterPath:
113+
"""
114+
使用 quadTo 绘制不对称圆角矩形
115+
:param rect: QRectF 矩形区域
116+
:param radius_tl: 左上角半径
117+
:param radius_tr: 右上角半径
118+
:param radius_br: 右下角半径
119+
:param radius_bl: 左下角半径
120+
"""
121+
path = QPainterPath()
122+
123+
# 左上角开始
124+
path.moveTo(rect.left() + radius_tl, rect.top())
125+
path.lineTo(rect.right() - radius_tr, rect.top())
126+
if radius_tr > 0:
127+
path.quadTo(rect.right(), rect.top(), rect.right(), rect.top() + radius_tr)
128+
else:
129+
path.lineTo(rect.right(), rect.top())
130+
131+
path.lineTo(rect.right(), rect.bottom() - radius_br)
132+
if radius_br > 0:
133+
path.quadTo(rect.right(), rect.bottom(), rect.right() - radius_br, rect.bottom())
134+
else:
135+
path.lineTo(rect.right(), rect.bottom())
136+
137+
path.lineTo(rect.left() + radius_bl, rect.bottom())
138+
if radius_bl > 0:
139+
path.quadTo(rect.left(), rect.bottom(), rect.left(), rect.bottom() - radius_bl)
140+
else:
141+
path.lineTo(rect.left(), rect.bottom())
142+
143+
path.lineTo(rect.left(), rect.top() + radius_tl)
144+
if radius_tl > 0:
145+
path.quadTo(rect.left(), rect.top(), rect.left() + radius_tl, rect.top())
146+
else:
147+
path.lineTo(rect.left(), rect.top())
148+
149+
path.closeSubpath()
150+
return path
151+
152+
153+
def getRoundedRectPathArc(rect: QRectF,
154+
radius_tl: float, radius_tr: float,
155+
radius_br: float, radius_bl: float) -> QPainterPath:
156+
"""
157+
使用 arcTo 绘制不对称圆角矩形
158+
:param rect: QRectF 矩形区域
159+
:param radius_tl: 左上角半径
160+
:param radius_tr: 右上角半径
161+
:param radius_br: 右下角半径
162+
:param radius_bl: 左下角半径
163+
"""
164+
path = QPainterPath()
165+
166+
path.moveTo(rect.left() + radius_tl, rect.top())
167+
168+
path.lineTo(rect.right() - radius_tr, rect.top())
169+
path.arcTo(QRectF(rect.right() - 2*radius_tr, rect.top(), 2*radius_tr, 2*radius_tr), 90, -90)
170+
171+
path.lineTo(rect.right(), rect.bottom() - radius_br)
172+
path.arcTo(QRectF(rect.right() - 2*radius_br, rect.bottom() - 2*radius_br, 2*radius_br, 2*radius_br), 0, -90)
173+
174+
path.lineTo(rect.left() + radius_bl, rect.bottom())
175+
path.arcTo(QRectF(rect.left(), rect.bottom() - 2*radius_bl, 2*radius_bl, 2*radius_bl), 270, -90)
176+
177+
path.lineTo(rect.left(), rect.top() + radius_tl)
178+
path.arcTo(QRectF(rect.left(), rect.top(), 2*radius_tl, 2*radius_tl), 180, -90)
179+
180+
path.closeSubpath()
181+
return path
182+
110183
@lru_cache(maxsize=None)
111184
def _cachedGaussianLinearGradient(start_x, start_y, final_stop_x, final_stop_y, color_code, quality):
112185

0 commit comments

Comments
 (0)