Skip to content

Commit

Permalink
feat: compatible pyside6
Browse files Browse the repository at this point in the history
  • Loading branch information
xiaonuoAndy committed Feb 26, 2025
1 parent 4808eb9 commit 3f6fd15
Show file tree
Hide file tree
Showing 250 changed files with 1,573 additions and 875 deletions.
43 changes: 43 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Test and Lint

on: [push, pull_request]

jobs:
test:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
python-version: [3.7, 3.8, 3.9, 3.10, 3.11, 3.12]
qt-binding: ['pyside2', 'pyside6']
exclude:
# PySide2 不支持 Python 3.11+
- python-version: 3.11
qt-binding: 'pyside2'
- python-version: 3.12
qt-binding: 'pyside2'

steps:
- uses: actions/checkout@v3

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install nox
- name: Run tests
run: |
nox -s test -- --qt-binding=${{ matrix.qt-binding }}
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
file: ./coverage.xml
flags: unittests
name: codecov-umbrella
fail_ci_if_error: true
129 changes: 129 additions & 0 deletions dayu_widgets/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
# Import built-in modules
import os


DEFAULT_STATIC_FOLDER = os.path.join(__path__[0], "static")
CUSTOM_STATIC_FOLDERS = []
# Import local modules
from dayu_widgets.theme import MTheme


dayu_theme = MTheme("dark", primary_color=MTheme.orange)
# dayu_theme.default_size = dayu_theme.small
# dayu_theme = MTheme('light')

# Import local modules
from dayu_widgets.alert import MAlert
from dayu_widgets.avatar import MAvatar
from dayu_widgets.badge import MBadge
from dayu_widgets.breadcrumb import MBreadcrumb
from dayu_widgets.browser import MClickBrowserFilePushButton
from dayu_widgets.browser import MClickBrowserFileToolButton
from dayu_widgets.browser import MClickBrowserFolderPushButton
from dayu_widgets.browser import MClickBrowserFolderToolButton
from dayu_widgets.browser import MDragFileButton
from dayu_widgets.browser import MDragFolderButton
from dayu_widgets.button_group import MCheckBoxGroup
from dayu_widgets.button_group import MPushButtonGroup
from dayu_widgets.button_group import MRadioButtonGroup
from dayu_widgets.button_group import MToolButtonGroup
from dayu_widgets.card import MCard
from dayu_widgets.card import MMeta
from dayu_widgets.carousel import MCarousel
from dayu_widgets.check_box import MCheckBox
from dayu_widgets.collapse import MCollapse
from dayu_widgets.combo_box import MComboBox
from dayu_widgets.divider import MDivider
from dayu_widgets.field_mixin import MFieldMixin
from dayu_widgets.flow_layout import MFlowLayout
from dayu_widgets.item_model import MSortFilterModel
from dayu_widgets.item_model import MTableModel
from dayu_widgets.item_view import MBigView
from dayu_widgets.item_view import MListView
from dayu_widgets.item_view import MTableView
from dayu_widgets.item_view import MTreeView
from dayu_widgets.item_view_full_set import MItemViewFullSet
from dayu_widgets.item_view_set import MItemViewSet
from dayu_widgets.label import MLabel
from dayu_widgets.line_edit import MLineEdit
from dayu_widgets.line_tab_widget import MLineTabWidget
from dayu_widgets.loading import MLoading
from dayu_widgets.loading import MLoadingWrapper
from dayu_widgets.menu import MMenu
from dayu_widgets.menu_tab_widget import MMenuTabWidget
from dayu_widgets.message import MMessage
from dayu_widgets.page import MPage
from dayu_widgets.progress_bar import MProgressBar
from dayu_widgets.progress_circle import MProgressCircle
from dayu_widgets.push_button import MPushButton
from dayu_widgets.radio_button import MRadioButton
from dayu_widgets.slider import MSlider
from dayu_widgets.spin_box import MDateEdit
from dayu_widgets.spin_box import MDateTimeEdit
from dayu_widgets.spin_box import MDoubleSpinBox
from dayu_widgets.spin_box import MSpinBox
from dayu_widgets.spin_box import MTimeEdit
from dayu_widgets.switch import MSwitch
from dayu_widgets.tab_widget import MTabWidget
from dayu_widgets.text_edit import MTextEdit
from dayu_widgets.toast import MToast
from dayu_widgets.tool_button import MToolButton


__all__ = [
"MAlert",
"MAvatar",
"MBadge",
"MBreadcrumb",
"MClickBrowserFilePushButton",
"MClickBrowserFileToolButton",
"MClickBrowserFolderPushButton",
"MClickBrowserFolderToolButton",
"MDragFileButton",
"MDragFolderButton",
"MCheckBoxGroup",
"MPushButtonGroup",
"MRadioButtonGroup",
"MToolButtonGroup",
"MCard",
"MMeta",
"MCarousel",
"MCheckBox",
"MCollapse",
"MComboBox",
"MDivider",
"MFieldMixin",
"MFlowLayout",
"MSortFilterModel",
"MTableModel",
"MBigView",
"MListView",
"MTableView",
"MTreeView",
"MItemViewFullSet",
"MItemViewSet",
"MLabel",
"MLineEdit",
"MLineTabWidget",
"MLoading",
"MLoadingWrapper",
"MMenu",
"MMenuTabWidget",
"MMessage",
"MPage",
"MProgressBar",
"MProgressCircle",
"MPushButton",
"MRadioButton",
"MSlider",
"MDateEdit",
"MDateTimeEdit",
"MDoubleSpinBox",
"MSpinBox",
"MTimeEdit",
"MSwitch",
"MTabWidget",
"MTextEdit",
"MToast",
"MToolButton",
]
File renamed without changes.
31 changes: 14 additions & 17 deletions dayu_widgets3/alert.py → dayu_widgets/alert.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@
from qtpy import QtWidgets

# Import local modules
from dayu_widgets3 import dayu_theme
from dayu_widgets3.avatar import MAvatar
from dayu_widgets3.label import MLabel
from dayu_widgets3.mixin import property_mixin
from dayu_widgets3.qt import MPixmap
from dayu_widgets3.qt import get_scale_factor
from dayu_widgets3.tool_button import MToolButton
from dayu_widgets import dayu_theme
from dayu_widgets.avatar import MAvatar
from dayu_widgets.label import MLabel
from dayu_widgets.mixin import property_mixin
from dayu_widgets.qt import MPixmap
from dayu_widgets.qt import get_scale_factor
from dayu_widgets.tool_button import MToolButton


@property_mixin
Expand Down Expand Up @@ -79,10 +79,9 @@ def set_dayu_text(self, value):

if isinstance(value, str):
self._dayu_text = value

else:
raise TypeError("Input argument 'value' should be string type, " "but get {}".format(type(value)))

msg = "Input argument 'value' should be string type, but get {}"
raise TypeError(msg.format(type(value)))
self._set_dayu_text()

def _set_dayu_type(self):
Expand All @@ -92,23 +91,21 @@ def _set_dayu_type(self):
vars(dayu_theme).get(self._dayu_type + "_color"),
)
)

self.style().polish(self)

def set_dayu_type(self, value):
"""Set feedback type."""

if value in [
valid_types = [
MAlert.InfoType,
MAlert.SuccessType,
MAlert.WarningType,
MAlert.ErrorType,
]:
]
if value in valid_types:
self._dayu_type = value

else:
raise ValueError("Input argument 'value' should be one of " "info/success/warning/error string.")

msg = "Input argument 'value' should be one of info/success/warning/error string."
raise ValueError(msg)
self._set_dayu_type()

def get_dayu_type(self):
Expand Down
8 changes: 4 additions & 4 deletions dayu_widgets3/avatar.py → dayu_widgets/avatar.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
from qtpy import QtWidgets

# Import local modules
from dayu_widgets3 import dayu_theme
from dayu_widgets3.qt import MPixmap
from dayu_widgets import dayu_theme
from dayu_widgets.qt import MPixmap


class MAvatar(QtWidgets.QLabel):
Expand Down Expand Up @@ -55,8 +55,8 @@ def set_dayu_image(self, value):
elif isinstance(value, QtGui.QPixmap):
self._pixmap = self._default_pix if value.isNull() else value
else:
raise TypeError("Input argument 'value' should be QPixmap or None, " "but get {}".format(type(value)))

msg = "Input argument 'value' should be QPixmap or None, but get {}"
raise TypeError(msg.format(type(value)))
self._set_dayu_image()

def get_dayu_image(self):
Expand Down
8 changes: 5 additions & 3 deletions dayu_widgets3/badge.py → dayu_widgets/badge.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from qtpy import QtWidgets

# Import local modules
from dayu_widgets3 import utils
from dayu_widgets import utils


class MBadge(QtWidgets.QWidget):
Expand Down Expand Up @@ -36,14 +36,16 @@ def __init__(self, widget=None, parent=None):
self._text = None
self._count = None
self._badge_button = QtWidgets.QPushButton()
self._badge_button.setSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
size_policy = QtWidgets.QSizePolicy.Minimum
self._badge_button.setSizePolicy(size_policy, size_policy)
self._main_lay = QtWidgets.QGridLayout()
self._main_lay.setContentsMargins(0, 0, 0, 0)

if widget is not None:
self._main_lay.addWidget(widget, 0, 0)

self._main_lay.addWidget(self._badge_button, 0, 0, QtCore.Qt.AlignTop | QtCore.Qt.AlignRight)
align_flags = QtCore.Qt.AlignTop | QtCore.Qt.AlignRight
self._main_lay.addWidget(self._badge_button, 0, 0, align_flags)
self.setLayout(self._main_lay)

def get_dayu_overflow(self):
Expand Down
4 changes: 2 additions & 2 deletions dayu_widgets3/breadcrumb.py → dayu_widgets/breadcrumb.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
from qtpy import QtWidgets

# Import local modules
from dayu_widgets3.label import MLabel
from dayu_widgets3.tool_button import MToolButton
from dayu_widgets.label import MLabel
from dayu_widgets.tool_button import MToolButton


class MBreadcrumb(QtWidgets.QWidget):
Expand Down
Loading

0 comments on commit 3f6fd15

Please sign in to comment.