PySide2-Fluent-Widgets 1.7.2__tar.gz → 1.7.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/PKG-INFO +2 -2
  2. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/PySide2_Fluent_Widgets.egg-info/PKG-INFO +2 -2
  3. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/README.md +1 -1
  4. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/__init__.py +1 -1
  5. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/date_time/fast_calendar_view.py +7 -5
  6. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/navigation/navigation_bar.py +10 -5
  7. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/navigation/navigation_panel.py +4 -12
  8. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/settings/__init__.py +1 -1
  9. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/settings/expand_setting_card.py +12 -0
  10. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/combo_box.py +13 -3
  11. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/tool_tip.py +1 -0
  12. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/setup.py +1 -1
  13. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/LICENSE +0 -0
  14. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/PySide2_Fluent_Widgets.egg-info/SOURCES.txt +0 -0
  15. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/PySide2_Fluent_Widgets.egg-info/dependency_links.txt +0 -0
  16. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/PySide2_Fluent_Widgets.egg-info/requires.txt +0 -0
  17. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/PySide2_Fluent_Widgets.egg-info/top_level.txt +0 -0
  18. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/_rc/__init__.py +0 -0
  19. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/_rc/resource.py +0 -0
  20. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/common/__init__.py +0 -0
  21. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/common/animation.py +0 -0
  22. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/common/auto_wrap.py +0 -0
  23. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/common/color.py +0 -0
  24. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/common/config.py +0 -0
  25. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/common/exception_handler.py +0 -0
  26. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/common/font.py +0 -0
  27. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/common/icon.py +0 -0
  28. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/common/image_utils.py +0 -0
  29. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/common/overload.py +0 -0
  30. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/common/router.py +0 -0
  31. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/common/screen.py +0 -0
  32. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/common/smooth_scroll.py +0 -0
  33. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/common/style_sheet.py +0 -0
  34. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/common/theme_listener.py +0 -0
  35. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/common/translator.py +0 -0
  36. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/__init__.py +0 -0
  37. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/date_time/__init__.py +0 -0
  38. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/date_time/calendar_picker.py +0 -0
  39. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/date_time/calendar_view.py +0 -0
  40. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/date_time/date_picker.py +0 -0
  41. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/date_time/picker_base.py +0 -0
  42. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/date_time/time_picker.py +0 -0
  43. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/dialog_box/__init__.py +0 -0
  44. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/dialog_box/color_dialog.py +0 -0
  45. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/dialog_box/dialog.py +0 -0
  46. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/dialog_box/folder_list_dialog.py +0 -0
  47. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/dialog_box/mask_dialog_base.py +0 -0
  48. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/dialog_box/message_box_base.py +0 -0
  49. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/dialog_box/message_dialog.py +0 -0
  50. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/layout/__init__.py +0 -0
  51. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/layout/expand_layout.py +0 -0
  52. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/layout/flow_layout.py +0 -0
  53. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/layout/v_box_layout.py +0 -0
  54. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/material/__init__.py +0 -0
  55. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/material/acrylic_combo_box.py +0 -0
  56. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/material/acrylic_flyout.py +0 -0
  57. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/material/acrylic_line_edit.py +0 -0
  58. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/material/acrylic_menu.py +0 -0
  59. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/material/acrylic_tool_tip.py +0 -0
  60. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/material/acrylic_widget.py +0 -0
  61. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/navigation/__init__.py +0 -0
  62. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/navigation/breadcrumb.py +0 -0
  63. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/navigation/navigation_interface.py +0 -0
  64. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/navigation/navigation_widget.py +0 -0
  65. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/navigation/pivot.py +0 -0
  66. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/navigation/segmented_widget.py +0 -0
  67. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/settings/custom_color_setting_card.py +0 -0
  68. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/settings/folder_list_setting_card.py +0 -0
  69. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/settings/options_setting_card.py +0 -0
  70. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/settings/setting_card.py +0 -0
  71. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/settings/setting_card_group.py +0 -0
  72. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/__init__.py +0 -0
  73. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/acrylic_label.py +0 -0
  74. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/button.py +0 -0
  75. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/card_widget.py +0 -0
  76. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/check_box.py +0 -0
  77. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/command_bar.py +0 -0
  78. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/cycle_list_widget.py +0 -0
  79. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/flip_view.py +0 -0
  80. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/flyout.py +0 -0
  81. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/frameless_window.py +0 -0
  82. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/icon_widget.py +0 -0
  83. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/info_badge.py +0 -0
  84. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/info_bar.py +0 -0
  85. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/label.py +0 -0
  86. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/line_edit.py +0 -0
  87. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/list_view.py +0 -0
  88. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/menu.py +0 -0
  89. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/pips_pager.py +0 -0
  90. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/progress_bar.py +0 -0
  91. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/progress_ring.py +0 -0
  92. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/scroll_area.py +0 -0
  93. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/scroll_bar.py +0 -0
  94. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/separator.py +0 -0
  95. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/slider.py +0 -0
  96. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/spin_box.py +0 -0
  97. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/stacked_widget.py +0 -0
  98. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/state_tool_tip.py +0 -0
  99. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/switch_button.py +0 -0
  100. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/tab_view.py +0 -0
  101. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/table_view.py +0 -0
  102. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/teaching_tip.py +0 -0
  103. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/components/widgets/tree_view.py +0 -0
  104. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/multimedia/__init__.py +0 -0
  105. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/multimedia/media_play_bar.py +0 -0
  106. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/multimedia/media_player.py +0 -0
  107. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/multimedia/video_widget.py +0 -0
  108. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/window/__init__.py +0 -0
  109. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/window/fluent_window.py +0 -0
  110. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/window/splash_screen.py +0 -0
  111. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/qfluentwidgets/window/stacked_widget.py +0 -0
  112. {pyside2_fluent_widgets-1.7.2 → pyside2_fluent_widgets-1.7.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PySide2-Fluent-Widgets
3
- Version: 1.7.2
3
+ Version: 1.7.4
4
4
  Summary: A fluent design widgets library based on PySide2
5
5
  Home-page: https://qfluentwidgets.com
6
6
  Author: zhiyiYo
@@ -65,7 +65,7 @@ The [Pro version](https://qfluentwidgets.com/pages/pro) library contains more ad
65
65
 
66
66
  C++ QFluentWidgets require purchasing a license from the [official website](https://qfluentwidgets.com/price). You can also download the compiled demo `C++_QFluentWidgets.zip` from the [release page](https://github.com/zhiyiYo/PyQt-Fluent-Widgets/releases).
67
67
 
68
- > **Warning**
68
+ > [!Warning]
69
69
  > Don't install PyQt-Fluent-Widgets, PyQt6-Fluent-Widgets, PySide2-Fluent-Widgets and PySide6-Fluent-Widgets at the same time, because their package names are all `qfluentwidgets`.
70
70
 
71
71
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PySide2-Fluent-Widgets
3
- Version: 1.7.2
3
+ Version: 1.7.4
4
4
  Summary: A fluent design widgets library based on PySide2
5
5
  Home-page: https://qfluentwidgets.com
6
6
  Author: zhiyiYo
@@ -65,7 +65,7 @@ The [Pro version](https://qfluentwidgets.com/pages/pro) library contains more ad
65
65
 
66
66
  C++ QFluentWidgets require purchasing a license from the [official website](https://qfluentwidgets.com/price). You can also download the compiled demo `C++_QFluentWidgets.zip` from the [release page](https://github.com/zhiyiYo/PyQt-Fluent-Widgets/releases).
67
67
 
68
- > **Warning**
68
+ > [!Warning]
69
69
  > Don't install PyQt-Fluent-Widgets, PyQt6-Fluent-Widgets, PySide2-Fluent-Widgets and PySide6-Fluent-Widgets at the same time, because their package names are all `qfluentwidgets`.
70
70
 
71
71
 
@@ -40,7 +40,7 @@ The [Pro version](https://qfluentwidgets.com/pages/pro) library contains more ad
40
40
 
41
41
  C++ QFluentWidgets require purchasing a license from the [official website](https://qfluentwidgets.com/price). You can also download the compiled demo `C++_QFluentWidgets.zip` from the [release page](https://github.com/zhiyiYo/PyQt-Fluent-Widgets/releases).
42
42
 
43
- > **Warning**
43
+ > [!Warning]
44
44
  > Don't install PyQt-Fluent-Widgets, PyQt6-Fluent-Widgets, PySide2-Fluent-Widgets and PySide6-Fluent-Widgets at the same time, because their package names are all `qfluentwidgets`.
45
45
 
46
46
 
@@ -12,7 +12,7 @@ Examples are available at https://github.com/zhiyiYo/PyQt-Fluent-Widgets/tree/Py
12
12
  :license: GPLv3 for non-commercial project, see README for more details.
13
13
  """
14
14
 
15
- __version__ = "1.7.2"
15
+ __version__ = "1.7.4"
16
16
  __author__ = "zhiyiYo"
17
17
 
18
18
  from .components import *
@@ -325,16 +325,18 @@ class FastDayScrollView(FastScrollViewBase):
325
325
  self.item(i).setFlags(Qt.ItemFlag.NoItemFlags)
326
326
 
327
327
  currentDate = left
328
- for i in range(left.daysTo(right) - 1):
328
+ for i in range(left.daysTo(right)):
329
329
  item = self.item(i + bias if self.currentPage == 0 else i)
330
- item.setText(str(currentDate.day()))
331
- item.setData(Qt.ItemDataRole.UserRole, currentDate)
332
- currentDate = currentDate.addDays(1)
330
+ if item:
331
+ item.setText(str(currentDate.day()))
332
+ item.setData(Qt.ItemDataRole.UserRole, currentDate)
333
+ currentDate = currentDate.addDays(1)
333
334
 
334
335
  def mouseReleaseEvent(self, e):
335
336
  super().mouseReleaseEvent(e)
336
337
  item = self.currentItem()
337
- self._setSelectedDate(item.data(Qt.ItemDataRole.UserRole))
338
+ if item:
339
+ self._setSelectedDate(item.data(Qt.ItemDataRole.UserRole))
338
340
 
339
341
  def pageCount(self):
340
342
  return (self.maxYear - self.minYear + 1) * 12
@@ -12,7 +12,7 @@ from ...common.icon import drawIcon, FluentIconBase, toQIcon
12
12
  from ...common.icon import FluentIcon as FIF
13
13
  from ...common.router import qrouter
14
14
  from ...common.style_sheet import FluentStyleSheet
15
- from ..widgets.scroll_area import SingleDirectionScrollArea
15
+ from ..widgets.scroll_area import ScrollArea
16
16
  from .navigation_widget import NavigationPushButton, NavigationWidget
17
17
  from .navigation_panel import RouteKeyError, NavigationItemPosition
18
18
 
@@ -82,7 +82,11 @@ class NavigationBarPushButton(NavigationPushButton):
82
82
  QPainter.TextAntialiasing | QPainter.SmoothPixmapTransform)
83
83
  painter.setPen(Qt.NoPen)
84
84
 
85
- # draw background
85
+ self._drawBackground(painter)
86
+ self._drawIcon(painter)
87
+ self._drawText(painter)
88
+
89
+ def _drawBackground(self, painter: QPainter):
86
90
  if self.isSelected:
87
91
  painter.setBrush(QColor(255, 255, 255, 42) if isDarkTheme() else Qt.white)
88
92
  painter.drawRoundedRect(self.rect(), 5, 5)
@@ -99,7 +103,7 @@ class NavigationBarPushButton(NavigationPushButton):
99
103
  painter.setBrush(QColor(c, c, c, alpha))
100
104
  painter.drawRoundedRect(self.rect(), 5, 5)
101
105
 
102
- # draw icon
106
+ def _drawIcon(self, painter: QPainter):
103
107
  if (self.isPressed or not self.isEnter) and not self.isSelected:
104
108
  painter.setOpacity(0.6)
105
109
  if not self.isEnabled():
@@ -119,10 +123,10 @@ class NavigationBarPushButton(NavigationPushButton):
119
123
  else:
120
124
  drawIcon(self._icon, painter, rect)
121
125
 
126
+ def _drawText(self, painter: QPainter):
122
127
  if self.isSelected and not self._isSelectedTextVisible:
123
128
  return
124
129
 
125
- # draw text
126
130
  if self.isSelected:
127
131
  painter.setPen(themeColor())
128
132
  else:
@@ -149,7 +153,7 @@ class NavigationBar(QWidget):
149
153
  def __init__(self, parent=None):
150
154
  super().__init__(parent=parent)
151
155
 
152
- self.scrollArea = SingleDirectionScrollArea(self)
156
+ self.scrollArea = ScrollArea(self)
153
157
  self.scrollWidget = QWidget()
154
158
 
155
159
  self.vBoxLayout = QVBoxLayout(self)
@@ -169,6 +173,7 @@ class NavigationBar(QWidget):
169
173
 
170
174
  self.scrollArea.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
171
175
  self.scrollArea.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
176
+ self.scrollArea.horizontalScrollBar().setEnabled(False)
172
177
  self.scrollArea.setWidget(self.scrollWidget)
173
178
  self.scrollArea.setWidgetResizable(True)
174
179
 
@@ -9,7 +9,7 @@ from PySide2.QtWidgets import QWidget, QVBoxLayout, QFrame, QApplication, QHBoxL
9
9
  from .navigation_widget import (NavigationTreeWidgetBase, NavigationToolButton, NavigationWidget, NavigationSeparator,
10
10
  NavigationTreeWidget, NavigationFlyoutMenu)
11
11
  from ..widgets.acrylic_label import AcrylicBrush
12
- from ..widgets.scroll_area import SingleDirectionScrollArea
12
+ from ..widgets.scroll_area import ScrollArea
13
13
  from ..widgets.tool_tip import ToolTipFilter
14
14
  from ..widgets.flyout import Flyout, FlyoutAnimationType, FlyoutViewBase, SlideRightFlyoutAnimationManager
15
15
  from ..material.acrylic_flyout import AcrylicFlyout, AcrylicFlyoutViewBase
@@ -71,7 +71,7 @@ class NavigationPanel(QFrame):
71
71
 
72
72
  self.acrylicBrush = AcrylicBrush(self, 30)
73
73
 
74
- self.scrollArea = SingleDirectionScrollArea(self)
74
+ self.scrollArea = ScrollArea(self)
75
75
  self.scrollWidget = QWidget()
76
76
 
77
77
  self.menuButton = NavigationToolButton(FIF.MENU, self)
@@ -107,6 +107,7 @@ class NavigationPanel(QFrame):
107
107
 
108
108
  self.scrollArea.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
109
109
  self.scrollArea.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
110
+ self.scrollArea.horizontalScrollBar().setEnabled(False)
110
111
  self.scrollArea.setWidget(self.scrollWidget)
111
112
  self.scrollArea.setWidgetResizable(True)
112
113
 
@@ -142,7 +143,7 @@ class NavigationPanel(QFrame):
142
143
  self.scrollLayout.setSpacing(4)
143
144
 
144
145
  self.vBoxLayout.addLayout(self.topLayout, 0)
145
- self.vBoxLayout.addWidget(self.scrollArea, 1, Qt.AlignTop)
146
+ self.vBoxLayout.addWidget(self.scrollArea, 1)
146
147
  self.vBoxLayout.addLayout(self.bottomLayout, 0)
147
148
 
148
149
  self.vBoxLayout.setAlignment(Qt.AlignTop)
@@ -568,15 +569,6 @@ class NavigationPanel(QFrame):
568
569
  def isCollapsed(self):
569
570
  return self.displayMode == NavigationDisplayMode.COMPACT
570
571
 
571
- def resizeEvent(self, e: QResizeEvent):
572
- if e.oldSize().height() == self.height():
573
- return
574
-
575
- th = self.topLayout.minimumSize().height()
576
- bh = self.bottomLayout.minimumSize().height()
577
- h = self.height()-th-bh-20
578
- self.scrollArea.setFixedHeight(max(h, 36))
579
-
580
572
  def eventFilter(self, obj, e: QEvent):
581
573
  if obj is not self.window() or not self._isCollapsible:
582
574
  return super().eventFilter(obj, e)
@@ -1,7 +1,7 @@
1
1
  from .setting_card import (SettingCard, SwitchSettingCard, RangeSettingCard,
2
2
  PushSettingCard, ColorSettingCard, HyperlinkCard,
3
3
  PrimaryPushSettingCard, ColorPickerButton, ComboBoxSettingCard)
4
- from .expand_setting_card import ExpandSettingCard, ExpandGroupSettingCard
4
+ from .expand_setting_card import ExpandSettingCard, ExpandGroupSettingCard, SimpleExpandGroupSettingCard
5
5
  from .folder_list_setting_card import FolderListSettingCard
6
6
  from .options_setting_card import OptionsSettingCard
7
7
  from .custom_color_setting_card import CustomColorSettingCard
@@ -375,3 +375,15 @@ class ExpandGroupSettingCard(ExpandSettingCard):
375
375
 
376
376
  if self.isExpand:
377
377
  self.setFixedHeight(self.card.height()+h)
378
+
379
+
380
+ class SimpleExpandGroupSettingCard(ExpandGroupSettingCard):
381
+ """ Simple expand group setting card """
382
+
383
+ def _adjustViewSize(self):
384
+ """ adjust view size """
385
+ h = self.viewLayout.sizeHint().height()
386
+ self.spaceWidget.setFixedHeight(h)
387
+
388
+ if self.isExpand:
389
+ self.setFixedHeight(self.card.height()+h)
@@ -18,7 +18,7 @@ from ...common.style_sheet import FluentStyleSheet
18
18
  class ComboItem:
19
19
  """ Combo box item """
20
20
 
21
- def __init__(self, text: str, icon: Union[str, QIcon, FluentIconBase] = None, userData=None):
21
+ def __init__(self, text: str, icon: Union[str, QIcon, FluentIconBase] = None, userData=None, isEnabled=True):
22
22
  """ add item
23
23
 
24
24
  Parameters
@@ -31,10 +31,14 @@ class ComboItem:
31
31
 
32
32
  userData: Any
33
33
  user data
34
+
35
+ isEnabled: bool
36
+ whether to enable the item
34
37
  """
35
38
  self.text = text
36
39
  self.userData = userData
37
40
  self.icon = icon
41
+ self.isEnabled = isEnabled
38
42
 
39
43
  @property
40
44
  def icon(self):
@@ -224,6 +228,11 @@ class ComboBoxBase:
224
228
  if 0 <= index < len(self.items):
225
229
  self.items[index].icon = icon
226
230
 
231
+ def setItemEnabled(self, index: int, isEnabled: bool):
232
+ """ Sets the enabled status of the item on the given index """
233
+ if 0 <= index < len(self.items):
234
+ self.items[index].isEnabled = isEnabled
235
+
227
236
  def findData(self, data):
228
237
  """ Returns the index of the item containing the given data, otherwise returns -1 """
229
238
  for i, item in enumerate(self.items):
@@ -306,8 +315,9 @@ class ComboBoxBase:
306
315
 
307
316
  menu = self._createComboMenu()
308
317
  for i, item in enumerate(self.items):
309
- menu.addAction(
310
- QAction(item.icon, item.text, triggered=lambda x=i: self._onItemClicked(x)))
318
+ action = QAction(item.icon, item.text, triggered=lambda x=i: self._onItemClicked(x))
319
+ action.setEnabled(item.isEnabled)
320
+ menu.addAction(action)
311
321
 
312
322
  if menu.view.width() < self.width():
313
323
  menu.view.setMinimumWidth(self.width())
@@ -444,6 +444,7 @@ class ItemViewToolTipDelegate(ToolTipFilter):
444
444
  if event.type() == QEvent.Type.ToolTip:
445
445
  text = index.data(Qt.ItemDataRole.ToolTipRole)
446
446
  if not text:
447
+ self.hideToolTip()
447
448
  return False
448
449
 
449
450
  self.text = text
@@ -6,7 +6,7 @@ with open('README.md', encoding='utf-8') as f:
6
6
 
7
7
  setuptools.setup(
8
8
  name="PySide2-Fluent-Widgets",
9
- version="1.7.2",
9
+ version="1.7.4",
10
10
  keywords="pyside2 fluent widgets",
11
11
  author="zhiyiYo",
12
12
  author_email="shokokawaii@outlook.com",