-
Notifications
You must be signed in to change notification settings - Fork 49
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #130 from ChinaIceF/reconst
Fixed bugs of adding pages, impl side drawers
- Loading branch information
Showing
12 changed files
with
309 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1 change: 1 addition & 0 deletions
1
examples/Gallery for siui/components/page_page_control/__init__.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from .page_control import ExamplePageControl |
68 changes: 68 additions & 0 deletions
68
examples/Gallery for siui/components/page_page_control/page_control.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
from PyQt5.QtCore import Qt | ||
|
||
from siui.components import ( | ||
SiPushButton, | ||
SiTitledWidgetGroup, | ||
) | ||
from siui.components.page import SiPage | ||
from siui.core.globals import SiGlobal | ||
|
||
from ..option_card import OptionCardPlaneForWidgetDemos | ||
|
||
|
||
class ExamplePageControl(SiPage): | ||
def __init__(self, *args, **kwargs): | ||
super().__init__(*args, **kwargs) | ||
|
||
self.setPadding(64) | ||
self.setScrollMaximumWidth(950) | ||
self.setScrollAlignment(Qt.AlignLeft) | ||
self.setTitle("页面控制") | ||
|
||
# 创建控件组 | ||
self.titled_widgets_group = SiTitledWidgetGroup(self) | ||
self.titled_widgets_group.setSpacing(32) | ||
self.titled_widgets_group.setAdjustWidgetsSize(False) # 禁用调整宽度 | ||
|
||
# 侧边栏信息 | ||
with self.titled_widgets_group as group: | ||
group.addTitle("页面偏移") | ||
|
||
# 侧边栏信息 | ||
self.global_shifting = OptionCardPlaneForWidgetDemos(self) | ||
self.global_shifting.setSourceCodeURL("https://github.com/ChinaIceF/PyQt-SiliconUI/blob/main/siui/components" | ||
"/widgets/progress_bar/progress_bar.py") | ||
self.global_shifting.setTitle("页面偏移") | ||
self.global_shifting.setFixedWidth(800) | ||
|
||
self.ctrl_shift_left = SiPushButton(self) | ||
self.ctrl_shift_left.resize(128, 32) | ||
self.ctrl_shift_left.attachment().setText("向左偏移") | ||
self.ctrl_shift_left.clicked.connect( | ||
lambda: SiGlobal.siui.windows["MAIN_WINDOW"].groups()["MAIN_INTERFACE"].moveTo(-100, 0)) | ||
|
||
self.ctrl_shift_right = SiPushButton(self) | ||
self.ctrl_shift_right.resize(128, 32) | ||
self.ctrl_shift_right.attachment().setText("向右偏移") | ||
self.ctrl_shift_right.clicked.connect( | ||
lambda: SiGlobal.siui.windows["MAIN_WINDOW"].groups()["MAIN_INTERFACE"].moveTo(100, 0)) | ||
|
||
self.ctrl_shift_restore = SiPushButton(self) | ||
self.ctrl_shift_restore.resize(128, 32) | ||
self.ctrl_shift_restore.attachment().setText("恢复") | ||
self.ctrl_shift_restore.clicked.connect( | ||
lambda: SiGlobal.siui.windows["MAIN_WINDOW"].groups()["MAIN_INTERFACE"].moveTo(0, 0)) | ||
|
||
self.global_shifting.body().addWidget(self.ctrl_shift_left) | ||
self.global_shifting.body().addWidget(self.ctrl_shift_right) | ||
self.global_shifting.body().addWidget(self.ctrl_shift_restore) | ||
self.global_shifting.body().addPlaceholder(12) | ||
self.global_shifting.adjustSize() | ||
|
||
group.addWidget(self.global_shifting) | ||
|
||
# 添加页脚的空白以增加美观性 | ||
self.titled_widgets_group.addPlaceholder(64) | ||
|
||
# 设置控件组为页面对象 | ||
self.setAttachment(self.titled_widgets_group) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
51 changes: 51 additions & 0 deletions
51
siui/templates/application/components/layer/global_drawer.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
from PyQt5.QtCore import Qt | ||
from PyQt5.QtWidgets import QWidget | ||
|
||
from siui.components import SiLabel, SiWidget, SiTitledWidgetGroup | ||
from siui.components.page import SiPage | ||
from siui.templates.application.components.layer.layer import SiLayer | ||
|
||
|
||
class Drawer(SiWidget): | ||
def resizeEvent(self, event): | ||
super().resizeEvent(event) | ||
for child in self.children(): | ||
if isinstance(child, QWidget): | ||
child.resize(event.size()) | ||
|
||
|
||
class SiLayerDrawer(SiLayer): | ||
def __init__(self, *args, **kwargs): | ||
super().__init__(*args, **kwargs) | ||
|
||
self.is_opened = False | ||
|
||
self.drawer = Drawer(self) | ||
self.drawer_panel = SiLabel(self.drawer) | ||
self.drawer_page = SiPage(self.drawer) | ||
|
||
self.setDrawerWidth(400) | ||
self.closeLayer() | ||
|
||
def isOpened(self): | ||
return self.is_opened | ||
|
||
def setOpened(self, state): | ||
self.is_opened = state | ||
|
||
def setDrawerWidth(self, width): | ||
self.drawer.resize(width, self.drawer.height()) | ||
|
||
def showLayer(self): | ||
super().showLayer() | ||
self.setAttribute(Qt.WA_TransparentForMouseEvents, False) | ||
self.setOpened(True) | ||
|
||
def closeLayer(self): | ||
super().closeLayer() | ||
self.setAttribute(Qt.WA_TransparentForMouseEvents, True) | ||
self.setOpened(False) | ||
|
||
def resizeEvent(self, event): | ||
super().resizeEvent(event) | ||
self.drawer.resize(self.drawer.width(), event.size().height()) |
Empty file.
117 changes: 117 additions & 0 deletions
117
...mplates/application/components/layer/layer_left_global_drawer/layer_left_global_drawer.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,117 @@ | ||
from PyQt5.QtCore import Qt | ||
|
||
from siui.components import SiLabel, SiSliderH, SiTitledWidgetGroup, SiWidget | ||
from siui.components.combobox import SiComboBox | ||
from siui.core.color import SiColor | ||
from siui.core.globals import SiGlobal | ||
|
||
from ..global_drawer import SiLayerDrawer | ||
|
||
|
||
class LayerLeftGlobalDrawer(SiLayerDrawer): | ||
def __init__(self, *args, **kwargs): | ||
super().__init__(*args, **kwargs) | ||
self.drawer.move(-self.drawer.width(), 0) | ||
|
||
self.drawer_widget_group = SiTitledWidgetGroup(self) | ||
self.drawer_widget_group.setSpacing(8) | ||
|
||
self.drawer_page.setPadding(48) | ||
self.drawer_page.setTitle("全局左侧抽屉") | ||
self.drawer_page.title.setContentsMargins(32, 0, 0, 0) | ||
self.drawer_page.setScrollAlignment(Qt.AlignLeft) | ||
|
||
with self.drawer_widget_group as group: | ||
group.addTitle("全局性") | ||
|
||
self.text_label = SiLabel(self) | ||
self.text_label.setTextColor(self.colorGroup().fromToken(SiColor.TEXT_D)) | ||
self.text_label.setWordWrap(True) | ||
self.text_label.setText("这里是全局抽屉,无论在何种情况下,该抽屉被打开时都会令界面发生侧移,保证抽屉正常展开\n\n" | ||
"不同于其他页面,全局抽屉推荐为唯一的,全局抽屉中的控件推荐为静态的") | ||
self.text_label.setFixedHeight(128) | ||
|
||
group.addWidget(self.text_label) | ||
|
||
with self.drawer_widget_group as group: | ||
group.addTitle("声音") | ||
|
||
self.label_output_device = SiLabel(self) | ||
self.label_output_device.setTextColor(self.colorGroup().fromToken(SiColor.TEXT_C)) | ||
self.label_output_device.setText("输出设备") | ||
|
||
self.demo_output_device = SiComboBox(self) | ||
self.demo_output_device.resize(256, 32) | ||
self.demo_output_device.addOption("默认设备") | ||
self.demo_output_device.addOption("RealTek(R) Output") | ||
self.demo_output_device.addOption("姬霓太美(R) Output") | ||
self.demo_output_device.menu().setShowIcon(False) | ||
self.demo_output_device.menu().setIndex(0) | ||
|
||
self.label_slider_1 = SiLabel(self) | ||
self.label_slider_1.setTextColor(self.colorGroup().fromToken(SiColor.TEXT_C)) | ||
self.label_slider_1.setText("总音量") | ||
|
||
self.demo_slider_1 = SiSliderH(self) | ||
self.demo_slider_1.resize(0, 16) | ||
self.demo_slider_1.setMinimum(0) | ||
self.demo_slider_1.setMaximum(100) | ||
self.demo_slider_1.setValue(80, move_to=False) | ||
|
||
self.label_slider_2 = SiLabel(self) | ||
self.label_slider_2.setTextColor(self.colorGroup().fromToken(SiColor.TEXT_C)) | ||
self.label_slider_2.setText("音乐音量") | ||
|
||
self.demo_slider_2 = SiSliderH(self) | ||
self.demo_slider_2.resize(0, 16) | ||
self.demo_slider_2.setMinimum(0) | ||
self.demo_slider_2.setMaximum(100) | ||
self.demo_slider_2.setValue(100, move_to=False) | ||
|
||
self.label_slider_3 = SiLabel(self) | ||
self.label_slider_3.setTextColor(self.colorGroup().fromToken(SiColor.TEXT_C)) | ||
self.label_slider_3.setText("音效音量") | ||
|
||
self.demo_slider_3 = SiSliderH(self) | ||
self.demo_slider_3.resize(0, 16) | ||
self.demo_slider_3.setMinimum(0) | ||
self.demo_slider_3.setMaximum(100) | ||
self.demo_slider_3.setValue(61, move_to=False) | ||
|
||
group.addWidget(self.label_output_device) | ||
group.addWidget(self.demo_output_device) | ||
group.addPlaceholder(8) | ||
group.addWidget(self.label_slider_1) | ||
group.addWidget(self.demo_slider_1) | ||
group.addPlaceholder(8) | ||
group.addWidget(self.label_slider_2) | ||
group.addWidget(self.demo_slider_2) | ||
group.addPlaceholder(8) | ||
group.addWidget(self.label_slider_3) | ||
group.addWidget(self.demo_slider_3) | ||
|
||
group.addPlaceholder(64) | ||
|
||
self.drawer_page.setAttachment(self.drawer_widget_group) | ||
|
||
def setOpened(self, state): | ||
super().setOpened(state) | ||
if state: | ||
self.drawer.moveTo(0, 0) | ||
else: | ||
self.drawer.moveTo(-self.drawer.width(), 0) | ||
|
||
def reloadStyleSheet(self): | ||
super().reloadStyleSheet() | ||
self.drawer_panel.setStyleSheet( | ||
f"background-color: {self.colorGroup().fromToken(SiColor.INTERFACE_BG_C)};" | ||
f"border-right: 1px solid {self.colorGroup().fromToken(SiColor.INTERFACE_BG_D)}" | ||
) | ||
|
||
def showLayer(self): | ||
super().showLayer() | ||
SiGlobal.siui.windows["MAIN_WINDOW"].groups()["MAIN_INTERFACE"].moveTo(100, 0) | ||
|
||
def closeLayer(self): | ||
super().closeLayer() | ||
SiGlobal.siui.windows["MAIN_WINDOW"].groups()["MAIN_INTERFACE"].moveTo(0, 0) |
Oops, something went wrong.