RinUI 0.1.4__tar.gz → 0.1.5.1__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 (119) hide show
  1. {rinui-0.1.4/RinUI.egg-info → rinui-0.1.5.1}/PKG-INFO +1 -1
  2. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/__init__.py +1 -1
  3. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/Text/SpinBox.qml +1 -1
  4. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/core/config.py +9 -8
  5. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/core/launcher.py +5 -5
  6. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/core/window.py +17 -3
  7. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/windows/FluentWindowBase.qml +1 -1
  8. {rinui-0.1.4 → rinui-0.1.5.1/RinUI.egg-info}/PKG-INFO +1 -1
  9. {rinui-0.1.4 → rinui-0.1.5.1}/pyproject.toml +1 -1
  10. {rinui-0.1.4 → rinui-0.1.5.1}/LICENSE +0 -0
  11. {rinui-0.1.4 → rinui-0.1.5.1}/MANIFEST.in +0 -0
  12. {rinui-0.1.4 → rinui-0.1.5.1}/README.md +0 -0
  13. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/assets/fonts/FluentSystemIcons-Index.js +0 -0
  14. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/assets/fonts/FluentSystemIcons-Resizable.ttf +0 -0
  15. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/assets/img/default_app_icon.png +0 -0
  16. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/Base.qml +0 -0
  17. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/BasicInput/Button.qml +0 -0
  18. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/BasicInput/CheckBox.qml +0 -0
  19. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/BasicInput/ComboBox.qml +0 -0
  20. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/BasicInput/DropDownButton.qml +0 -0
  21. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/BasicInput/Hyperlink.qml +0 -0
  22. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/BasicInput/PillButton.qml +0 -0
  23. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/BasicInput/RadioButton.qml +0 -0
  24. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/BasicInput/RoundButton.qml +0 -0
  25. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/BasicInput/Slider.qml +0 -0
  26. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/BasicInput/Switch.qml +0 -0
  27. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/BasicInput/ToggleButton.qml +0 -0
  28. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/BasicInput/ToolButton.qml +0 -0
  29. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/ContextMenu.qml +0 -0
  30. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/DateAndTime/DatePicker.qml +0 -0
  31. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/DateAndTime/PickerView.qml +0 -0
  32. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/DateAndTime/TimePicker.qml +0 -0
  33. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/DialogsAndFlyouts/Dialog.qml +0 -0
  34. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/DialogsAndFlyouts/DialogButtonBox.qml +0 -0
  35. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/DialogsAndFlyouts/Flyout.qml +0 -0
  36. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/DialogsAndFlyouts/Popup.qml +0 -0
  37. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/FocusIndicator.qml +0 -0
  38. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/IconWidget.qml +0 -0
  39. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/Indicator.qml +0 -0
  40. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/Layout/Expander.qml +0 -0
  41. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/Layout/SettingExpander.qml +0 -0
  42. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/Layout/SettingItem.qml +0 -0
  43. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/ListAndCollections/Clip.qml +0 -0
  44. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/ListAndCollections/Frame.qml +0 -0
  45. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/ListAndCollections/ListView.qml +0 -0
  46. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/ListAndCollections/ListViewDelegate.qml +0 -0
  47. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/ListAndCollections/SettingCard.qml +0 -0
  48. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/ListAndCollections/TableView.qml +0 -0
  49. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/ListAndCollections/TableViewDelegate.qml +0 -0
  50. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/Media/Avatar.qml +0 -0
  51. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/MenusAndToolbars/Menu.qml +0 -0
  52. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/MenusAndToolbars/MenuBar.qml +0 -0
  53. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/MenusAndToolbars/MenuItem.qml +0 -0
  54. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/MenusAndToolbars/MenuItemGroup.qml +0 -0
  55. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/MenusAndToolbars/MenuSeparator.qml +0 -0
  56. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/MenusAndToolbars/TextInputMenu.qml +0 -0
  57. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/MenusAndToolbars/ToolSeparator.qml +0 -0
  58. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/Navigation/ErrorPage.qml +0 -0
  59. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/Navigation/NavigationBar.qml +0 -0
  60. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/Navigation/NavigationItem.qml +0 -0
  61. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/Navigation/NavigationSubItem.qml +0 -0
  62. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/Navigation/NavigationView.qml +0 -0
  63. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/Navigation/Segmented.qml +0 -0
  64. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/Navigation/SegmentedItem.qml +0 -0
  65. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/Navigation/SelectorBar.qml +0 -0
  66. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/Navigation/SelectorBarItem.qml +0 -0
  67. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/ScrollBar.qml +0 -0
  68. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/ScrollView.qml +0 -0
  69. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/Shadow.qml +0 -0
  70. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/StatusAndInfo/BusyIndicator.qml +0 -0
  71. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/StatusAndInfo/InfoBadge.qml +0 -0
  72. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/StatusAndInfo/InfoBar.qml +0 -0
  73. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/StatusAndInfo/ProgressBar.qml +0 -0
  74. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/StatusAndInfo/ProgressRing.qml +0 -0
  75. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/StatusAndInfo/Toast.qml +0 -0
  76. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/StatusAndInfo/ToolTip.qml +0 -0
  77. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/Text/Text.qml +0 -0
  78. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/Text/TextArea.qml +0 -0
  79. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/Text/TextField.qml +0 -0
  80. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/Text/TextInput.qml +0 -0
  81. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/components/qmldir +0 -0
  82. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/core/__init__.py +0 -0
  83. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/core/theme.py +0 -0
  84. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/core/translator.py +0 -0
  85. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/hooks/__init__.py +0 -0
  86. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/hooks/hook-RinUI.py +0 -0
  87. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/languages/en_US.qm +0 -0
  88. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/languages/en_US.ts +0 -0
  89. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/languages/zh_CN.qm +0 -0
  90. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/languages/zh_CN.ts +0 -0
  91. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/qmldir +0 -0
  92. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/themes/Appearance.qml +0 -0
  93. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/themes/Colors.qml +0 -0
  94. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/themes/dark.qml +0 -0
  95. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/themes/light.qml +0 -0
  96. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/themes/qmldir +0 -0
  97. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/themes/theme.qml +0 -0
  98. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/themes/utils.qml +0 -0
  99. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/utils/Animation.qml +0 -0
  100. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/utils/FloatLayer.qml +0 -0
  101. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/utils/FontIconLoader.qml +0 -0
  102. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/utils/Position.qml +0 -0
  103. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/utils/Severity.qml +0 -0
  104. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/utils/Typography.qml +0 -0
  105. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/utils/qmldir +0 -0
  106. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/windows/CtrlBtn.qml +0 -0
  107. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/windows/FluentPage.qml +0 -0
  108. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/windows/FluentWindow.qml +0 -0
  109. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/windows/TitleBar.qml +0 -0
  110. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/windows/WindowManager.qml +0 -0
  111. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/windows/qmldir +0 -0
  112. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/windows/window/ApplicationWindow.qml +0 -0
  113. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI/windows/window/Window.qml +0 -0
  114. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI.egg-info/SOURCES.txt +0 -0
  115. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI.egg-info/dependency_links.txt +0 -0
  116. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI.egg-info/entry_points.txt +0 -0
  117. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI.egg-info/requires.txt +0 -0
  118. {rinui-0.1.4 → rinui-0.1.5.1}/RinUI.egg-info/top_level.txt +0 -0
  119. {rinui-0.1.4 → rinui-0.1.5.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: RinUI
3
- Version: 0.1.4
3
+ Version: 0.1.5.1
4
4
  Summary: A Fluent Design-like UI library for Qt Quick (QML) based on PySide6
5
5
  Author-email: RinLit <lintu233_qwq@icloud.com>
6
6
  Classifier: Programming Language :: Python :: 3
@@ -1,4 +1,4 @@
1
1
  from .core import *
2
2
 
3
- __version__ = "0.1.4"
3
+ __version__ = "0.1.5.1"
4
4
  __author__ = "RinLit"
@@ -107,7 +107,7 @@ SpinBox {
107
107
  // 恢复滚轮调整数值
108
108
  WheelHandler {
109
109
  id: wheelHandler
110
- target: spin
110
+ target: root
111
111
  onWheel: (event) => {
112
112
  if (!root.focus) {
113
113
  return; // 如果没有焦点,则不处理滚轮事件
@@ -1,9 +1,9 @@
1
- import os
2
1
  import json
3
2
  import platform
4
3
  import sys
5
- from PySide6.QtCore import QLocale
6
4
  from enum import Enum
5
+ from pathlib import Path
6
+ import os
7
7
 
8
8
 
9
9
  def is_win11():
@@ -27,15 +27,16 @@ def is_windows():
27
27
  def resource_path(relative_path):
28
28
  """兼容 PyInstaller 打包和开发环境的路径"""
29
29
  if hasattr(sys, '_MEIPASS'):
30
- return os.path.join(sys._MEIPASS, relative_path)
31
- return os.path.abspath(relative_path)
30
+ return Path(sys._MEIPASS) / relative_path
31
+ return Path(relative_path).resolve()
32
+
32
33
 
34
+ rinui_core_path = Path(__file__).resolve().parent # RinUI/core 目录
33
35
 
34
- rinui_core_path = os.path.abspath(os.path.dirname(__file__)) # RinUI/core 目录
36
+ BASE_DIR = Path.cwd().resolve()
37
+ PATH = BASE_DIR / "RinUI" / "config"
38
+ RINUI_PATH = resource_path(rinui_core_path.parent.parent) # 使用 resource_path 处理路径,等同 ../../
35
39
 
36
- BASE_DIR = os.path.abspath(os.getcwd())
37
- PATH = os.path.join(BASE_DIR, "RinUI/config")
38
- RINUI_PATH = resource_path(os.path.join(rinui_core_path, "../../")) # 使用 resource_path 处理路径
39
40
  DEFAULT_CONFIG = {
40
41
  "theme": {
41
42
  "current_theme": "Auto",
@@ -1,4 +1,3 @@
1
- import os
2
1
  import sys
3
2
  from typing import Union
4
3
 
@@ -54,9 +53,9 @@ class RinUIWindow:
54
53
 
55
54
  if qml_path is None:
56
55
  raise ValueError("QML path must be provided to load the window.")
57
- self.qml_path = qml_path
56
+ self.qml_path = Path(qml_path)
58
57
 
59
- if os.path.exists(RINUI_PATH):
58
+ if self.qml_path.exists():
60
59
  self.engine.addImportPath(RINUI_PATH)
61
60
  else:
62
61
  raise FileNotFoundError(f"Cannot find RinUI module: {RINUI_PATH}")
@@ -99,13 +98,14 @@ class RinUIWindow:
99
98
  self.engine.rootContext().setContextProperty("WinEventManager", self.win_event_manager)
100
99
  self._apply_windows_effects()
101
100
 
102
- def setIcon(self, path: str) -> None:
101
+ def setIcon(self, path: Union[str, Path] = None) -> None:
103
102
  """
104
103
  Sets the icon for the application.
105
- :param path: str, icon file path (eg = "path/to/icon.png")
104
+ :param path: str or Path, icon file path (eg = "path/to/icon.png")
106
105
  :return:
107
106
  """
108
107
  app_instance = QApplication.instance()
108
+ path = Path(path).as_posix()
109
109
  if app_instance:
110
110
  app_instance.setWindowIcon(QIcon(path)) # 设置应用程序图标
111
111
  self.root_window.setProperty('icon', QUrl.fromLocalFile(path))
@@ -1,10 +1,12 @@
1
1
  import platform
2
+ from typing import Optional
2
3
 
3
4
  from PySide6.QtCore import QAbstractNativeEventFilter, QByteArray, QObject, Slot
4
5
  import ctypes
5
6
  from ctypes import wintypes
6
7
 
7
8
  import win32con
9
+ from PySide6.QtQuick import QQuickWindow
8
10
  from win32gui import ReleaseCapture, GetWindowPlacement, ShowWindow
9
11
  from win32con import SW_MAXIMIZE, SW_RESTORE
10
12
  from win32api import SendMessage
@@ -111,13 +113,25 @@ class WinEventManager(QObject):
111
113
 
112
114
 
113
115
  class WinEventFilter(QAbstractNativeEventFilter):
114
- def __init__(self, window):
116
+ def __init__(self, window: QQuickWindow):
115
117
  super().__init__()
116
118
  self.window = window
117
- self.hwnd = int(window.winId())
118
- self.resize_border = 8 # resize 边框宽度
119
+ self.hwnd: Optional[int] = None
120
+ self.resize_border = 8
119
121
 
122
+ if not self.window.isVisible():
123
+ self.window.visibleChanged.connect(self._on_visible_changed)
124
+ else:
125
+ self._init_window_handle()
126
+
127
+ def _on_visible_changed(self, visible: bool):
128
+ if visible and self.hwnd is None:
129
+ self._init_window_handle()
130
+
131
+ def _init_window_handle(self):
132
+ self.hwnd = int(self.window.winId())
120
133
  self.set_window_styles()
134
+ print(f"Window handle set: {self.hwnd}")
121
135
 
122
136
  def set_window_styles(self):
123
137
  """设置必要的窗口样式以启用原生窗口行为"""
@@ -18,7 +18,7 @@ ApplicationWindow {
18
18
  color: "transparent"
19
19
 
20
20
  // 自定义属性
21
- property var icon: "../assets/img/default_app_icon.png" // 图标
21
+ property var icon: undefined // 图标
22
22
  property alias titleEnabled: titleBar.titleEnabled
23
23
  property int titleBarHeight: Theme.currentTheme.appearance.dialogTitleBarHeight
24
24
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: RinUI
3
- Version: 0.1.4
3
+ Version: 0.1.5.1
4
4
  Summary: A Fluent Design-like UI library for Qt Quick (QML) based on PySide6
5
5
  Author-email: RinLit <lintu233_qwq@icloud.com>
6
6
  Classifier: Programming Language :: Python :: 3
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "RinUI"
7
- version = "0.1.4"
7
+ version = "0.1.5.1"
8
8
  authors = [
9
9
  { name = "RinLit", email = "lintu233_qwq@icloud.com" }
10
10
  ]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes