RinUI 0.0.10.1__py3-none-any.whl → 0.1.0__py3-none-any.whl

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 (46) hide show
  1. RinUI/__init__.py +1 -1
  2. RinUI/__pycache__/__init__.cpython-38.pyc +0 -0
  3. RinUI/assets/img/default_app_icon.png +0 -0
  4. RinUI/components/BasicInput/Button.qml +1 -2
  5. RinUI/components/ContextMenu.qml +1 -1
  6. RinUI/components/DialogsAndFlyouts/Flyout.qml +10 -67
  7. RinUI/components/Media/Avatar.qml +83 -0
  8. RinUI/components/MenusAndToolbars/TextInputMenu.qml +38 -0
  9. RinUI/components/Navigation/Segmented.qml +17 -0
  10. RinUI/components/Navigation/SegmentedItem.qml +108 -0
  11. RinUI/components/Navigation/SelectorBar.qml +3 -48
  12. RinUI/components/Navigation/SelectorBarItem.qml +89 -0
  13. RinUI/components/Text/TextArea.qml +1 -29
  14. RinUI/components/Text/TextField.qml +1 -29
  15. RinUI/components/Text/TextInput.qml +19 -0
  16. RinUI/components/qmldir +4 -0
  17. RinUI/core/__init__.py +2 -1
  18. RinUI/core/__pycache__/__init__.cpython-38.pyc +0 -0
  19. RinUI/core/__pycache__/config.cpython-38.pyc +0 -0
  20. RinUI/core/__pycache__/launcher.cpython-38.pyc +0 -0
  21. RinUI/core/__pycache__/theme.cpython-38.pyc +0 -0
  22. RinUI/core/__pycache__/translator.cpython-38.pyc +0 -0
  23. RinUI/core/config.py +11 -2
  24. RinUI/core/launcher.py +24 -37
  25. RinUI/core/theme.py +17 -20
  26. RinUI/core/translator.py +25 -0
  27. RinUI/languages/en_US.qm +1 -0
  28. RinUI/languages/en_US.ts +201 -0
  29. RinUI/languages/zh_CN.qm +0 -0
  30. RinUI/languages/zh_CN.ts +204 -0
  31. RinUI/qmldir +8 -0
  32. RinUI/themes/dark.qml +9 -0
  33. RinUI/themes/light.qml +10 -1
  34. RinUI/themes/theme.qml +39 -15
  35. RinUI/themes/utils.qml +4 -0
  36. RinUI/windows/FluentWindow.qml +0 -1
  37. RinUI/windows/FluentWindowBase.qml +0 -1
  38. RinUI/windows/TitleBar.qml +2 -2
  39. {rinui-0.0.10.1.data → rinui-0.1.0.data}/data/README.md +5 -1
  40. {rinui-0.0.10.1.dist-info → rinui-0.1.0.dist-info}/METADATA +6 -2
  41. {rinui-0.0.10.1.dist-info → rinui-0.1.0.dist-info}/RECORD +46 -35
  42. {rinui-0.0.10.1.data → rinui-0.1.0.data}/data/LICENSE +0 -0
  43. {rinui-0.0.10.1.dist-info → rinui-0.1.0.dist-info}/LICENSE +0 -0
  44. {rinui-0.0.10.1.dist-info → rinui-0.1.0.dist-info}/WHEEL +0 -0
  45. {rinui-0.0.10.1.dist-info → rinui-0.1.0.dist-info}/entry_points.txt +0 -0
  46. {rinui-0.0.10.1.dist-info → rinui-0.1.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,204 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE TS>
3
+ <TS version="2.1" language="zh_CN" sourcelanguage="en_US">
4
+ <context>
5
+ <name>CtrlBtn</name>
6
+ <message>
7
+ <location filename="../windows/CtrlBtn.qml" line="19"/>
8
+ <source>Maximize</source>
9
+ <translation>最大化</translation>
10
+ </message>
11
+ <message>
12
+ <location filename="../windows/CtrlBtn.qml" line="19"/>
13
+ <source>Minimize</source>
14
+ <translation>最小化</translation>
15
+ </message>
16
+ <message>
17
+ <location filename="../windows/CtrlBtn.qml" line="19"/>
18
+ <source>Close</source>
19
+ <translation>关闭</translation>
20
+ </message>
21
+ <message>
22
+ <location filename="../windows/CtrlBtn.qml" line="19"/>
23
+ <source>Unknown</source>
24
+ <translation>未知</translation>
25
+ </message>
26
+ </context>
27
+ <context>
28
+ <name>DatePicker</name>
29
+ <message>
30
+ <location filename="../components/DateAndTime/DatePicker.qml" line="98"/>
31
+ <source>year</source>
32
+ <translation>年</translation>
33
+ </message>
34
+ <message>
35
+ <location filename="../components/DateAndTime/DatePicker.qml" line="99"/>
36
+ <source>month</source>
37
+ <translation>月</translation>
38
+ </message>
39
+ <message>
40
+ <location filename="../components/DateAndTime/DatePicker.qml" line="100"/>
41
+ <source>day</source>
42
+ <translation>日</translation>
43
+ </message>
44
+ </context>
45
+ <context>
46
+ <name>ErrorPage</name>
47
+ <message>
48
+ <location filename="../components/Navigation/ErrorPage.qml" line="21"/>
49
+ <source>Sorry, something went wrong!</source>
50
+ <translation>抱歉,出错了!</translation>
51
+ </message>
52
+ <message>
53
+ <location filename="../components/Navigation/ErrorPage.qml" line="30"/>
54
+ <source> load failed!
55
+
56
+ Because of </source>
57
+ <translation> 加载 QML 失败!
58
+
59
+ 由于 </translation>
60
+ </message>
61
+ <message>
62
+ <location filename="../components/Navigation/ErrorPage.qml" line="30"/>
63
+ <source>
64
+ Please try again later.</source>
65
+ <translation>
66
+ 请稍后重试。</translation>
67
+ </message>
68
+ <message>
69
+ <location filename="../components/Navigation/ErrorPage.qml" line="41"/>
70
+ <source>Retry</source>
71
+ <translation>重试</translation>
72
+ </message>
73
+ </context>
74
+ <context>
75
+ <name>FluentWindow</name>
76
+ <message>
77
+ <location filename="../windows/FluentWindow.qml" line="11"/>
78
+ <source>Fluent Window</source>
79
+ <translation>流畅窗口</translation>
80
+ </message>
81
+ </context>
82
+ <context>
83
+ <name>FluentWindowBase</name>
84
+ <message>
85
+ <location filename="../windows/FluentWindowBase.qml" line="11"/>
86
+ <source>Fluent Window Base</source>
87
+ <translation>流畅窗口基类</translation>
88
+ </message>
89
+ </context>
90
+ <context>
91
+ <name>InfoBar</name>
92
+ <message>
93
+ <location filename="../components/StatusAndInfo/InfoBar.qml" line="171"/>
94
+ <source>Close</source>
95
+ <translation>关闭</translation>
96
+ </message>
97
+ </context>
98
+ <context>
99
+ <name>NavigationBar</name>
100
+ <message>
101
+ <location filename="../components/Navigation/NavigationBar.qml" line="98"/>
102
+ <source>Back</source>
103
+ <translation>返回</translation>
104
+ </message>
105
+ <message>
106
+ <location filename="../components/Navigation/NavigationBar.qml" line="137"/>
107
+ <source>Open Navigation</source>
108
+ <translation>展开导航</translation>
109
+ </message>
110
+ <message>
111
+ <location filename="../components/Navigation/NavigationBar.qml" line="137"/>
112
+ <source>Close Navigation</source>
113
+ <translation>收起导航</translation>
114
+ </message>
115
+ </context>
116
+ <context>
117
+ <name>PickerView</name>
118
+ <message>
119
+ <location filename="../components/DateAndTime/PickerView.qml" line="26"/>
120
+ <source>AM</source>
121
+ <translation>上午</translation>
122
+ </message>
123
+ <message>
124
+ <location filename="../components/DateAndTime/PickerView.qml" line="26"/>
125
+ <source>PM</source>
126
+ <translation>下午</translation>
127
+ </message>
128
+ </context>
129
+ <context>
130
+ <name>Switch</name>
131
+ <message>
132
+ <location filename="../components/BasicInput/Switch.qml" line="15"/>
133
+ <source>On</source>
134
+ <translation>启用</translation>
135
+ </message>
136
+ <message>
137
+ <location filename="../components/BasicInput/Switch.qml" line="16"/>
138
+ <source>Off</source>
139
+ <translation>禁用</translation>
140
+ </message>
141
+ </context>
142
+ <context>
143
+ <name>TextInputMenu</name>
144
+ <message>
145
+ <location filename="../components/MenusAndToolbars/TextInputMenu.qml" line="13"/>
146
+ <source>Cut</source>
147
+ <translation>剪切</translation>
148
+ </message>
149
+ <message>
150
+ <location filename="../components/MenusAndToolbars/TextInputMenu.qml" line="20"/>
151
+ <source>Copy</source>
152
+ <translation>复制</translation>
153
+ </message>
154
+ <message>
155
+ <location filename="../components/MenusAndToolbars/TextInputMenu.qml" line="27"/>
156
+ <source>Paste</source>
157
+ <translation>粘贴</translation>
158
+ </message>
159
+ <message>
160
+ <location filename="../components/MenusAndToolbars/TextInputMenu.qml" line="34"/>
161
+ <source>Select All</source>
162
+ <translation>全选</translation>
163
+ </message>
164
+ </context>
165
+ <context>
166
+ <name>TimePicker</name>
167
+ <message>
168
+ <location filename="../components/DateAndTime/TimePicker.qml" line="10"/>
169
+ <source>AM</source>
170
+ <translation>上午</translation>
171
+ </message>
172
+ <message>
173
+ <location filename="../components/DateAndTime/TimePicker.qml" line="11"/>
174
+ <source>PM</source>
175
+ <translation>下午</translation>
176
+ </message>
177
+ <message>
178
+ <location filename="../components/DateAndTime/TimePicker.qml" line="12"/>
179
+ <source>hour</source>
180
+ <translation>小时</translation>
181
+ </message>
182
+ <message>
183
+ <location filename="../components/DateAndTime/TimePicker.qml" line="13"/>
184
+ <source>minute</source>
185
+ <translation>分钟</translation>
186
+ </message>
187
+ </context>
188
+ <context>
189
+ <name>TitleBar</name>
190
+ <message>
191
+ <location filename="../windows/TitleBar.qml" line="133"/>
192
+ <source>Fluent TitleBar</source>
193
+ <translation>流畅标题栏</translation>
194
+ </message>
195
+ </context>
196
+ <context>
197
+ <name>Toast</name>
198
+ <message>
199
+ <location filename="../components/StatusAndInfo/Toast.qml" line="156"/>
200
+ <source>Close</source>
201
+ <translation type="unfinished">关闭</translation>
202
+ </message>
203
+ </context>
204
+ </TS>
RinUI/qmldir CHANGED
@@ -61,16 +61,24 @@ TableViewDelegate 1.0 components/ListAndCollections/TableViewDelegate.qml
61
61
 
62
62
  # Menus & Toolbars
63
63
  Menu 1.0 components/MenusAndToolbars/Menu.qml
64
+ TextInputMenu 1.0 components/MenusAndToolbars/TextInputMenu.qml
64
65
  MenuItem 1.0 components/MenusAndToolbars/MenuItem.qml
65
66
  MenuItemGroup 1.0 components/MenusAndToolbars/MenuItemGroup.qml
66
67
  MenuSeparator 1.0 components/MenusAndToolbars/MenuSeparator.qml
67
68
  ToolSeparator 1.0 components/MenusAndToolbars/ToolSeparator.qml
68
69
  MenuBar 1.0 components/MenusAndToolbars/MenuBar.qml
69
70
 
71
+ # Media
72
+ Avatar 1.0 components/Media/Avatar.qml
73
+
70
74
  # Navigation
71
75
  NavigationView 1.0 components/Navigation/NavigationView.qml
72
76
  NavigationBar 1.0 components/Navigation/NavigationBar.qml
73
77
  SelectorBar 1.0 components/Navigation/SelectorBar.qml
78
+ SelectorBarItem 1.0 components/Navigation/SelectorBarItem.qml
79
+ Segmented 1.0 components/Navigation/Segmented.qml
80
+ SegmentedItem 1.0 components/Navigation/SegmentedItem.qml
81
+
74
82
 
75
83
  # Window
76
84
  ApplicationWindow 1.0 windows/window/ApplicationWindow.qml
RinUI/themes/dark.qml CHANGED
@@ -16,6 +16,15 @@ QtObject {
16
16
  property color controlStrongColor: Qt.alpha("#ffffff", 0.5442)
17
17
  property color controlInputActiveColor: Qt.alpha("#1E1E1E", 0.7)
18
18
 
19
+ property color controlAltSecondaryColor: Qt.alpha("#000000", 0.1)
20
+ property color controlAltTertiaryColor: Qt.alpha("#ffffff", 0.0419)
21
+ property color controlAltQuaternaryColor: Qt.alpha("#ffffff", 0.0698)
22
+
23
+ property color controlFillColor: Qt.alpha("#ffffff", 0.0605)
24
+ property color controlFillSecondaryColor: Qt.alpha("#ffffff", 0.0837)
25
+ property color controlFillTertiaryColor: Qt.alpha("#ffffff", 0.0326)
26
+ property color controlFillQuaternaryColor: Qt.alpha("#ffffff", 0.0605)
27
+
19
28
  property color controlBorderColor: Qt.alpha("#ffffff", 0.09)
20
29
  property color controlBottomBorderColor: Qt.alpha("#000000", 0.03)
21
30
  property color controlAccentBottomBorderColor: Qt.alpha("#000000", 0.14)
RinUI/themes/light.qml CHANGED
@@ -16,6 +16,15 @@ QtObject {
16
16
  property color controlStrongColor: Qt.alpha("#000000", 0.4458)
17
17
  property color controlInputActiveColor: "#ffffff"
18
18
 
19
+ property color controlAltSecondaryColor: Qt.alpha("#000000", 0.0241)
20
+ property color controlAltTertiaryColor: Qt.alpha("#000000", 0.0578)
21
+ property color controlAltQuaternaryColor: Qt.alpha("#000000", 0.0924)
22
+
23
+ property color controlFillColor: Qt.alpha("#ffffff", 0.7)
24
+ property color controlFillSecondaryColor: Qt.alpha("#F9F9F9", 0.5)
25
+ property color controlFillTertiaryColor: Qt.alpha("#F9F9F9", 0.3)
26
+ property color controlFillQuaternaryColor: Qt.alpha("#F3F3F3", 0.76)
27
+
19
28
  property color controlBorderColor: Qt.alpha("#000000", 0.06)
20
29
  property color controlBottomBorderColor: Qt.alpha("#000000", 0.16)
21
30
  property color controlAccentBottomBorderColor: Qt.alpha("#000000", 0.4)
@@ -43,7 +52,7 @@ QtObject {
43
52
  property color backgroundAcrylicColor: "#F9F9F9"
44
53
  property color backgroundSmokeColor: Qt.alpha("#000000", 0.3)
45
54
 
46
- property color subtleColor: "transparent"
55
+ property color subtleColor: Qt.alpha("#ffffff", 0)
47
56
  property color subtleSecondaryColor: Qt.alpha("#000000", 0.0373)
48
57
  property color subtleTertiaryColor: Qt.alpha("#000000", 0.0241)
49
58
  property color captionCloseColor: "#c42b1c"
RinUI/themes/theme.qml CHANGED
@@ -6,6 +6,17 @@ Item {
6
6
  id: themeManager
7
7
 
8
8
  property var currentTheme: null
9
+ readonly property var mode: ({
10
+ Light: "Light",
11
+ Dark: "Dark",
12
+ Auto: "Auto"
13
+ })
14
+ readonly property var effect: ({
15
+ Mica: "mica",
16
+ Acrylic: "acrylic",
17
+ Tabbed: "tabbed",
18
+ None: "none"
19
+ })
9
20
 
10
21
  // 初始化时设置默认主题
11
22
  Component.onCompleted: {
@@ -17,12 +28,12 @@ Item {
17
28
  }
18
29
  }
19
30
 
20
- function isThemeMgrInitialized() {
31
+ function _isThemeMgrInitialized() {
21
32
  return typeof ThemeManager!== "undefined"
22
33
  }
23
34
 
24
35
  function setBackdropEffect(effect) {
25
- if (!isThemeMgrInitialized()) {
36
+ if (!_isThemeMgrInitialized()) {
26
37
  console.error("ThemeManager is not defined.")
27
38
  return -1
28
39
  }
@@ -30,7 +41,7 @@ Item {
30
41
  }
31
42
 
32
43
  function sendDragWindowEvent(window) {
33
- if (!isThemeMgrInitialized()) {
44
+ if (!_isThemeMgrInitialized()) {
34
45
  console.error("ThemeManager is not defined.")
35
46
  return -1
36
47
  }
@@ -38,15 +49,28 @@ Item {
38
49
  }
39
50
 
40
51
  function getBackdropEffect() {
41
- if (!isThemeMgrInitialized()) {
52
+ if (!_isThemeMgrInitialized()) {
42
53
  console.error("ThemeManager is not defined.")
43
54
  return -1
44
55
  }
45
56
  return ThemeManager.get_backdrop_effect()
46
57
  }
47
58
 
59
+ function setThemeColor(color) {
60
+ if (!_isThemeMgrInitialized()) {
61
+ console.error("ThemeManager is not defined.")
62
+ return -1
63
+ }
64
+ if (typeof color !== "string") {
65
+ console.error("Invalid color format. Expected a string.")
66
+ return -1
67
+ }
68
+ Utils.primaryColor = color
69
+ ThemeManager.set_theme_color(color)
70
+ }
71
+
48
72
  function getThemeColor() {
49
- if (!isThemeMgrInitialized()) {
73
+ if (!_isThemeMgrInitialized()) {
50
74
  console.error("ThemeManager is not defined.")
51
75
  return -1
52
76
  }
@@ -54,7 +78,7 @@ Item {
54
78
  }
55
79
 
56
80
  function getTheme() {
57
- if (!isThemeMgrInitialized()) {
81
+ if (!_isThemeMgrInitialized()) {
58
82
  console.error("ThemeManager is not defined.")
59
83
  return -1
60
84
  }
@@ -64,33 +88,33 @@ Item {
64
88
  // 本来打算写多主题支持的()
65
89
 
66
90
  function toggleMode() {
67
- if (!isThemeMgrInitialized()) {
91
+ if (!_isThemeMgrInitialized()) {
68
92
  console.error("ThemeManager is not defined.")
69
93
  return -1
70
94
  }
71
- var mode = ThemeManager.get_theme()
95
+ let theme_mode;
72
96
  if (!currentTheme.isDark) {
73
- mode = "Dark"
97
+ theme_mode = mode.Dark
74
98
  } else {
75
- mode = "Light"
99
+ theme_mode = mode.Light
76
100
  }
77
- setTheme(mode)
101
+ setTheme(theme_mode)
78
102
  }
79
103
 
80
104
  // 切换主题
81
- function setTheme(mode) {
82
- if (!isThemeMgrInitialized()) {
105
+ function setTheme(theme_mode: mode) {
106
+ if (!_isThemeMgrInitialized()) {
83
107
  console.error("ThemeManager is not defined.")
84
108
  currentTheme = Qt.createQmlObject("import '../themes'; Light {}", themeManager)
85
109
  return
86
110
  }
87
111
 
88
112
  // Call Python backend to toggle theme
89
- ThemeManager.toggle_theme(mode)
113
+ ThemeManager.toggle_theme(theme_mode)
90
114
 
91
115
  // Get the actual theme name
92
116
  var themeName = ThemeManager.get_theme_name()
93
- if (themeName === "Auto") {
117
+ if (themeName === mode.Auto) {
94
118
  // Get the actual theme applied (Light or Dark)
95
119
  themeName = ThemeManager.get_theme()
96
120
  }
RinUI/themes/utils.qml CHANGED
@@ -12,6 +12,10 @@ QtObject {
12
12
  property var fontIconIndex: Icons.FluentIcons // 字体图标索引
13
13
 
14
14
  property color primaryColor: "#605ed2" // 默认主题色
15
+ property QtObject colors: Theme.currentTheme.colors // 主题颜色
16
+ property QtObject appearance: Theme.currentTheme.appearance // 界面外观
17
+ property QtObject typography: Theme.currentTheme.typography // 字体
18
+
15
19
  property int windowDragArea: 5 // 窗口可拖动范围 (px)
16
20
  property int dialogMaximumWidth: 600 // 对话框最大宽度 (px)
17
21
  property int dialogMinimumWidth: 320 // 对话框最小宽度 (px)
@@ -8,7 +8,6 @@ import "../windows"
8
8
  FluentWindowBase {
9
9
  id: window
10
10
  // visible: true
11
- title: qsTr("Fluent Window")
12
11
  width: 900
13
12
  height: 600
14
13
  minimumWidth: 400
@@ -8,7 +8,6 @@ import "../components"
8
8
  ApplicationWindow {
9
9
  id: baseWindow
10
10
  // visible: true
11
- title: qsTr("Fluent Window Base")
12
11
  width: 800
13
12
  height: 600
14
13
  minimumWidth: 400
@@ -58,7 +58,7 @@ Item {
58
58
  onPressed: {
59
59
  clickPos = Qt.point(mouseX, mouseY)
60
60
 
61
- if (!(Qt.platform.os !== "windows" || Qt.platform.os !== "winrt") && !Theme.isThemeMgrInitialized()) {
61
+ if (!(Qt.platform.os !== "windows" || Qt.platform.os !== "winrt") && !Theme._isThemeMgrInitialized()) {
62
62
  return // 在win环境使用原生方法拖拽
63
63
  }
64
64
  Theme.sendDragWindowEvent(window)
@@ -69,7 +69,7 @@ Item {
69
69
  return
70
70
  }
71
71
 
72
- if ((Qt.platform.os !== "windows" || Qt.platform.os !== "winrt") && Theme.isThemeMgrInitialized()) {
72
+ if ((Qt.platform.os !== "windows" || Qt.platform.os !== "winrt") && Theme._isThemeMgrInitialized()) {
73
73
  return // 在win环境使用原生方法拖拽
74
74
  }
75
75
 
@@ -1,4 +1,5 @@
1
1
  <div align="center">
2
+ <img src="docs/img/logo.png" alt="RinUI Logo" width="18%">
2
3
  <h1>RinUI</h1>
3
4
  <p>A Fluent Design-like UI library for Qt Quick (QML)</p>
4
5
 
@@ -20,7 +21,8 @@ With simple configuration, you can quickly develop elegant UI interfaces in the
20
21
  * Elegant Fluent Design controls (WIP)
21
22
  * Dark and light mode, automatic switching
22
23
  * Compatible with original QML control names
23
- * Multi-language support (WIP)
24
+ * i18n Internationalization
25
+ * Multi-programming language support (WIP)
24
26
  * Theme system (WIP)
25
27
  * Development documentation, [preview](https://ui.rinlit.cn/) now. (WIP)
26
28
 
@@ -36,6 +38,8 @@ With simple configuration, you can quickly develop elegant UI interfaces in the
36
38
  ![img_3.png](/docs/img/img_3.png)
37
39
  </details>
38
40
 
41
+ > The image in the banner comes from Pixiv, PID: [125975786](https://www.pixiv.net/artworks/125975786)
42
+
39
43
  ## 🪄 Usage
40
44
 
41
45
  You can install RinUI via pip:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: RinUI
3
- Version: 0.0.10.1
3
+ Version: 0.1.0
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
@@ -14,6 +14,7 @@ Requires-Dist: darkdetect~=0.8.0
14
14
  Requires-Dist: pywin32>=306; sys_platform == "win32"
15
15
 
16
16
  <div align="center">
17
+ <img src="docs/img/logo.png" alt="RinUI Logo" width="18%">
17
18
  <h1>RinUI</h1>
18
19
  <p>A Fluent Design-like UI library for Qt Quick (QML)</p>
19
20
 
@@ -35,7 +36,8 @@ With simple configuration, you can quickly develop elegant UI interfaces in the
35
36
  * Elegant Fluent Design controls (WIP)
36
37
  * Dark and light mode, automatic switching
37
38
  * Compatible with original QML control names
38
- * Multi-language support (WIP)
39
+ * i18n Internationalization
40
+ * Multi-programming language support (WIP)
39
41
  * Theme system (WIP)
40
42
  * Development documentation, [preview](https://ui.rinlit.cn/) now. (WIP)
41
43
 
@@ -51,6 +53,8 @@ With simple configuration, you can quickly develop elegant UI interfaces in the
51
53
  ![img_3.png](/docs/img/img_3.png)
52
54
  </details>
53
55
 
56
+ > The image in the banner comes from Pixiv, PID: [125975786](https://www.pixiv.net/artworks/125975786)
57
+
54
58
  ## 🪄 Usage
55
59
 
56
60
  You can install RinUI via pip:
@@ -1,19 +1,19 @@
1
- RinUI/__init__.py,sha256=P1Pu8kQzTikIsIIJmukwaSMmpUG_r5fxnqgjAux3l0s,70
2
- RinUI/qmldir,sha256=Wml5zu7-V4EYjyDzCpJaEJxTDQOhigwnFQm7ab2k4lo,3448
3
- RinUI/__pycache__/__init__.cpython-38.pyc,sha256=Q-pcVUmh-8iobgHu0oaBXsCfhJCw7rvRiaQFjLI6H6M,221
1
+ RinUI/__init__.py,sha256=P4P_cLIyRXIeqnX5EgOm4i4u_YMJIzvYaitiT_gBc-Y,69
2
+ RinUI/qmldir,sha256=DDb5LGs5T_hYUJ4-eObD34PghPlgs2KAouU2KA6EaS4,3739
3
+ RinUI/__pycache__/__init__.cpython-38.pyc,sha256=uHwmokq_9l1VA5_6BJej_mO-spqvcKoNb2wHdG4HppA,220
4
4
  RinUI/assets/fonts/FluentSystemIcons-Index.js,sha256=XCgcjUnuZjdsjXUu37llGDpQW8sSJbxwmh-hG6UTB2A,258677
5
5
  RinUI/assets/fonts/FluentSystemIcons-Resizable.ttf,sha256=-IfF3NT1eODD0vOLVLC0Z2U5bsR6woSQAziX3qD1TqU,1447252
6
- RinUI/assets/img/default_app_icon.png,sha256=hegCgNlRFhVCTBhrY3ESzPeMWlkZOe5IgXsHWeTArPQ,93928
6
+ RinUI/assets/img/default_app_icon.png,sha256=8O83zl-bghUNsmEx9iCWYiXS8aC_0VGZKqMHdNKjB4A,292885
7
7
  RinUI/components/Base.qml,sha256=YifNpJR3iywAhbWkzGciOF-fyL_eb6YohrgLjDOxTkA,2439
8
- RinUI/components/ContextMenu.qml,sha256=8pLS_fXVFn7uFfx3gz0Bd1SvPMXryeYv1GnU3VlLTiI,5780
8
+ RinUI/components/ContextMenu.qml,sha256=GV2SOLNxhgKDHRpZoJU6fahDvJiP98NC2E1Ujosw4yA,5780
9
9
  RinUI/components/FocusIndicator.qml,sha256=R54F-CtUEeNmtoFmCX2Wo-7dom6MAhiWqN8vFapzUPo,926
10
10
  RinUI/components/IconWidget.qml,sha256=pJtNZYWxde-2_e0rALv_jZNByNx1Oir4wJ8hWmdKrns,1736
11
11
  RinUI/components/Indicator.qml,sha256=yIC96KZo6vhXE1aEX7wz2m2iwb8KXBWCqgxKrsLomT8,2627
12
12
  RinUI/components/ScrollBar.qml,sha256=01Qo9eAYRzEQhIU4oD2E7lCLdFGCmekhO32z-DCqo4o,7118
13
13
  RinUI/components/ScrollView.qml,sha256=S6GuZm9lptsZduH-xVDGKkS3BqGqi8EmyiBFvbVFAgM,275
14
14
  RinUI/components/Shadow.qml,sha256=YmVgAPAIY69ur57EDMDKMihx6ucI973SWyff01L8r0s,1638
15
- RinUI/components/qmldir,sha256=TfQyDUQZFpKilIHajbrHCU4UQBOH3IW1AVpDUVLKekk,2241
16
- RinUI/components/BasicInput/Button.qml,sha256=vyi214-iYvp82u5pg2xHWJwjKifZKSt2NXTuvYlRFHg,5430
15
+ RinUI/components/qmldir,sha256=1Q9BIhNGkpdDyOiLWnZpnC6MTkT8KUT8tDPj8HC4NzY,2335
16
+ RinUI/components/BasicInput/Button.qml,sha256=bZGURFGOSnHdHlFEq0OuNmdpk-mJQh7yo5pUBYUZRYU,5390
17
17
  RinUI/components/BasicInput/CheckBox.qml,sha256=hFSaKw5LLqSVZXTASQ5csCkTHUOBRZ700v4hm6uEfFM,3183
18
18
  RinUI/components/BasicInput/ComboBox.qml,sha256=OOJSoLGBnNJ8O--htkZfT8VDu7jAwHYbS-B_NB9J-SA,4748
19
19
  RinUI/components/BasicInput/DropDownButton.qml,sha256=loDUw_k9GeBUFSgb3McRIdCuLxptoj5Vc8jxinJMoCE,410
@@ -30,7 +30,7 @@ RinUI/components/DateAndTime/PickerView.qml,sha256=Av2ybHDQ-Hc00cxi3g97y0wyXZ_aC
30
30
  RinUI/components/DateAndTime/TimePicker.qml,sha256=KKOVLvKPm5moYIZaRxesRzi9v2pAK5xypCIfDda7N_Q,3844
31
31
  RinUI/components/DialogsAndFlyouts/Dialog.qml,sha256=KIIswm78ly6BK37wfb5mg26CjpGr-ehp0YdTpo902io,2759
32
32
  RinUI/components/DialogsAndFlyouts/DialogButtonBox.qml,sha256=60vE_o-3IgF8Ol0OkobJTeWYE4xaxiD1jFoKN1ZARXg,1174
33
- RinUI/components/DialogsAndFlyouts/Flyout.qml,sha256=aGx7qBCLzfxQSBBGHRMGr8frrsYZefo508i1mI83YpI,4187
33
+ RinUI/components/DialogsAndFlyouts/Flyout.qml,sha256=Q-UmV2SoirbwJncjUyeDyzjchEHmm__MI324k3gUvBw,2454
34
34
  RinUI/components/DialogsAndFlyouts/Popup.qml,sha256=U0TXPlU22EObTrNsXw2FI4s8MruWP0w4T6lSqOEYTLc,3252
35
35
  RinUI/components/Layout/Expander.qml,sha256=XUm0YSy0cMS6wJxstxpzVXXddY0iIridpeQxZc8gxyU,4859
36
36
  RinUI/components/Layout/SettingExpander.qml,sha256=e4xDD6ndlQDkBBJyp7AtMdpfkVpzRnesJPzIWVlMBx0,1950
@@ -42,18 +42,23 @@ RinUI/components/ListAndCollections/ListViewDelegate.qml,sha256=AQAsrtleMO5t3601
42
42
  RinUI/components/ListAndCollections/SettingCard.qml,sha256=CaR-MQnMIFjwnVM0VhI2IqSenBNtz_kGA4ExzxAjmLE,2208
43
43
  RinUI/components/ListAndCollections/TableView.qml,sha256=RJZQPb4yIdcE1jUJ4iQOHDSB5l4O3s7g3oKSuRaubI0,2232
44
44
  RinUI/components/ListAndCollections/TableViewDelegate.qml,sha256=lH19q3Vx9X6TYhgnRlwi7RGnAtb_k3dBbgJZlnQnEmE,2371
45
+ RinUI/components/Media/Avatar.qml,sha256=JnDHQ8jSq_8gHAMIwnMoOJBPikjuwGJvd0Ul6txOD04,2170
45
46
  RinUI/components/MenusAndToolbars/Menu.qml,sha256=AbnOkFR6nweWIBe1A4dsnZmb3eHHjqfokMVRNed-PPU,4653
46
47
  RinUI/components/MenusAndToolbars/MenuBar.qml,sha256=HR1pSTqklkLFiGkOTGxgRO9WFtsKRlxAT1sSzqYVP7Q,1097
47
48
  RinUI/components/MenusAndToolbars/MenuItem.qml,sha256=XghKdgYVksNKS1zufNtE96c0pnTQg6Dig_8ZNGqip84,3915
48
49
  RinUI/components/MenusAndToolbars/MenuItemGroup.qml,sha256=ywDv4KypNoTQbiDTeIedBj7Dfvcy9jdFtwwK7hSaozE,1057
49
50
  RinUI/components/MenusAndToolbars/MenuSeparator.qml,sha256=Z2G339bFrwOzRpWSqqahjmgJL5u-k-sw3g1uAHXerxQ,270
51
+ RinUI/components/MenusAndToolbars/TextInputMenu.qml,sha256=Xiqh-gnDHhFY8JvaPgVc4fPiISU29uzrEck1K-P87PI,976
50
52
  RinUI/components/MenusAndToolbars/ToolSeparator.qml,sha256=rZXXNnvKw3yZVptj1bOronPDkiYCId1ffAt-a3t-ea4,430
51
53
  RinUI/components/Navigation/ErrorPage.qml,sha256=uQ3UBby1vP6-SBjw1_7aU6hRNXmcqNdBKzC-EuB6a7U,1087
52
54
  RinUI/components/Navigation/NavigationBar.qml,sha256=RR8PjDNl0lqfwcvnx0EvooAnVx4db6Q8o1L03ghzdlE,5075
53
55
  RinUI/components/Navigation/NavigationItem.qml,sha256=YzveFBTT4I-NVF40NSVD3GCOgP0qdK3aWMA_3IGxuP0,5947
54
56
  RinUI/components/Navigation/NavigationSubItem.qml,sha256=Xap5EX41SWPOIzvd9FmTR4-zJIwHTe2OvestK_j_jso,3041
55
57
  RinUI/components/Navigation/NavigationView.qml,sha256=8RQh88UbCBvxL9FQDnnMznCy0PR2kAE6-ppudzZQj_k,7496
56
- RinUI/components/Navigation/SelectorBar.qml,sha256=ivxG2N0vHKRQ0anRRF9HFlvHlODH34ZOh_hVWuieG2E,1835
58
+ RinUI/components/Navigation/Segmented.qml,sha256=uOqp8DYh0Lyx3bndYdIVXBdaqmI-qaWTRfSMMQUd2OQ,520
59
+ RinUI/components/Navigation/SegmentedItem.qml,sha256=fKJUXT9Tb_PKzqiXFwNXRcRvJevFWRZEd3VOhuGoHjo,3001
60
+ RinUI/components/Navigation/SelectorBar.qml,sha256=xGP9V6BvPRYJQAIkMyanUMEGL3AbNok9Cj973920cN0,219
61
+ RinUI/components/Navigation/SelectorBarItem.qml,sha256=BGPqY5HGefEkIzZo98dFuBpJJN_lPtv2Mcg82gNOxGQ,2192
57
62
  RinUI/components/StatusAndInfo/InfoBadge.qml,sha256=AmyrUwPLP62x83mFlZu6aio7DFOtVK6mKhPVMVBjpQw,2457
58
63
  RinUI/components/StatusAndInfo/InfoBar.qml,sha256=LlW1ObaCOyBs6P5j8oNUSDfGxiXnP6m_jv1HLpK6S-Q,7728
59
64
  RinUI/components/StatusAndInfo/ProgressBar.qml,sha256=RAivKVM8C3JcQFjR6VZPz0H7XqWpSPq5G9qfnh2ABmQ,3515
@@ -61,25 +66,31 @@ RinUI/components/StatusAndInfo/Toast.qml,sha256=9T8i9JswzGEXZM8CeZbwWsILEbzymy2Z
61
66
  RinUI/components/StatusAndInfo/ToolTip.qml,sha256=js0t8IJ6bnYt8JHHMQwS49MQOhaBjLNYP_libFbZROk,2757
62
67
  RinUI/components/Text/SpinBox.qml,sha256=YC1CjlHauP081qtseFQuSDNCUsCnCgtjh8nfgPqCZfU,4229
63
68
  RinUI/components/Text/Text.qml,sha256=-VaPy0W4d8mE6C1crSA0ADReKdA_NlghxaS5iV_8RYg,1758
64
- RinUI/components/Text/TextArea.qml,sha256=BQmJIUHyWuTgTr4FP1XvFfGDFwt5bTT8rZ-v_eam-O8,4758
65
- RinUI/components/Text/TextField.qml,sha256=2S6x5iUWyemwm5vlywpK6YHy_QAezfZnznVVHDignH8,4570
66
- RinUI/components/Text/TextInput.qml,sha256=dShTgTHPgZcwy4qI-fCxXtBBcR4ebkl94hipq5Nadn4,1210
69
+ RinUI/components/Text/TextArea.qml,sha256=BA2YdHVfslv2d1AfHlPp-fpAK5tkWp6KgpU3FGetS1Q,3823
70
+ RinUI/components/Text/TextField.qml,sha256=Jdh8RqyGUB35lSLnv_662651eJsZEllXwGoaUS82HxU,3635
71
+ RinUI/components/Text/TextInput.qml,sha256=FI-ru7-hxG5aDJwUkMTRKbTkSgGmSgKC1inzSpDmNHM,1658
67
72
  RinUI/config/rin_ui.json,sha256=rDCS0TVFt1VowGlcW_jqOM81DWwkV7S8Z5rae2p4TSk,149
68
- RinUI/core/__init__.py,sha256=lm9MTtS7ZrvwpRDXatPehvJSnLPKnet4MY3R5T69kxM,147
69
- RinUI/core/config.py,sha256=l4LZZ54XsP6r7ZmhslgxonrTFX16qOojtKejILwJsv8,3554
70
- RinUI/core/launcher.py,sha256=qRKdBqLYmM4_ZqMeFl-6tBkpkqKEjSvgtqDf5zfiJE0,5119
71
- RinUI/core/theme.py,sha256=q8vqq5LP1zlGCLMmOfNQv47qcMtoDYqm0J7HwIC74g4,11203
72
- RinUI/core/__pycache__/__init__.cpython-38.pyc,sha256=UVtd9E2Qhoc6XOdcEVXncZHsI4yETMhwEaWxB6kw8Qg,362
73
- RinUI/core/__pycache__/config.cpython-38.pyc,sha256=Zh8NQ7EoG4Y_fMfu3UJLOUJP2E-sitgYbfbZ_2x-Js0,4122
74
- RinUI/core/__pycache__/launcher.cpython-38.pyc,sha256=VY7h9U7tS1HuHm2J2oZCt2mHExeJAa5O0yGxwoADXJA,5336
75
- RinUI/core/__pycache__/theme.cpython-38.pyc,sha256=CqxoFJO4dwpFfdqWnD5FlCqMEj_xWMvayoFaQCpvf7I,10041
73
+ RinUI/core/__init__.py,sha256=wNpVVuBWj3pX0eiq0P01QuN4oFxo_4bK5yuyj4vSO4Q,200
74
+ RinUI/core/config.py,sha256=0G1Wy2rT6b2FfRuJz3SHpoXiDnp7R012Al_9YYbdlz0,3851
75
+ RinUI/core/launcher.py,sha256=nZNa7Dt3LLhixODeleOof_KKwTojZi-6RSPLvaJtQE8,4745
76
+ RinUI/core/theme.py,sha256=cWTiVvCSIh5sLCZlZ1dB8VY0-fCrLULPVlj1TFjjKbU,11011
77
+ RinUI/core/translator.py,sha256=uFenyvJC-jD8S6Tm17OXeVQHp4kTwryHWGxqk9xbe44,975
78
+ RinUI/core/__pycache__/__init__.cpython-38.pyc,sha256=sEdnIYG9JymqK4ZnVJGwZZ-YopukgvFwAV3gLSvkQVw,433
79
+ RinUI/core/__pycache__/config.cpython-38.pyc,sha256=-LD5V93EHU-KlCDi3vBSEBr5yPkemkhFuygc9y1UXvA,4368
80
+ RinUI/core/__pycache__/launcher.cpython-38.pyc,sha256=yy-MEDwxSJCbyrOeACABF4eSK-_IHuV2Tl2zmhtyEuU,4788
81
+ RinUI/core/__pycache__/theme.cpython-38.pyc,sha256=h2oJQHNyjT12J4FG9uWED4gyMMqDma6P-vbxGCO3es0,9919
82
+ RinUI/core/__pycache__/translator.cpython-38.pyc,sha256=JAKIX3emlSjFSMZaI9sxMHJ19not7gEIyvmvSRjJeoo,1423
76
83
  RinUI/hooks/__init__.py,sha256=zer67JRQ-h9uvQmutYU2Us5oBjSJnBVzgR1Sl_5aPF0,77
77
84
  RinUI/hooks/hook-RinUI.py,sha256=9DW9x8zgpEsZpaAAUW-0LE_B69od1wBcUviVRnrAfMI,119
78
- RinUI/themes/dark.qml,sha256=2SV9KS2Wj-kILefm2qHg4rcNbo99gice88MiEJcNM3I,5396
79
- RinUI/themes/light.qml,sha256=4zcR9Xye6iSq6pSywEaOryhTRgAlHeJoEnp9YsaG5gQ,5343
85
+ RinUI/languages/en_US.qm,sha256=mVm1ELFdGJN4SK0TAH4wRZ0umTxn5WS62_wY-TVpXIU,16
86
+ RinUI/languages/en_US.ts,sha256=G4-J3m4FUwJRhYvJg9aqS4MYXVu6TQV_GvPBAJVrV-0,6804
87
+ RinUI/languages/zh_CN.qm,sha256=bQCxv9OfHL8xJbBZYXPZvpPJ6v_czMeVin5Kdnn7LSA,1697
88
+ RinUI/languages/zh_CN.ts,sha256=fKkkNsnSkFtPXpDiHWhoNnbmGGbTnGz81lrZYeSFVaE,6578
89
+ RinUI/themes/dark.qml,sha256=qg9pEbkoGGLgVdIaNR-9uC7vdvwPLayPGtwB0OXS_Ss,5938
90
+ RinUI/themes/light.qml,sha256=FhRke_jaFZPUon-slfVgPThp8eSgtnZMnUR53BaFcHQ,5886
80
91
  RinUI/themes/qmldir,sha256=cpBqpZ_vfZyOwWzAT9MEEVruyJkSWi3RVV6Qj0RVrGI,125
81
- RinUI/themes/theme.qml,sha256=AAviilBJ6aXBjjmc1dpSxvzAnlmYWGUTBXbMW2ee6cs,3693
82
- RinUI/themes/utils.qml,sha256=iXrUTUcMQZpS1kaq3oUwXivswv18FGImVVL2hXtr_B0,1481
92
+ RinUI/themes/theme.qml,sha256=zuMlMOn80U738znBR8_KCeMKYMXt3dKuvGreAm58FKI,4396
93
+ RinUI/themes/utils.qml,sha256=g7rx6WS_F4zZJneUIVCHv_4RUT4Hdh01XllZlAh1lfI,1712
83
94
  RinUI/utils/Animation.qml,sha256=Z--MRYr-bZqKX_QyZ4c0Z74g72i0k7aPzTBEUhTfiGo,146
84
95
  RinUI/utils/FloatLayer.qml,sha256=W-TaM8gCt6YWU46V_pDonyxNMlR-iEcg27FMl-FYV58,3323
85
96
  RinUI/utils/FontIconLoader.qml,sha256=DEUH-GlcI5q0PbCsvsvq1t-uPzEZo0-A-Gqt5t1eoFg,307
@@ -89,17 +100,17 @@ RinUI/utils/Typography.qml,sha256=uScq2PNHI_pW-vcyp2SDLL1pkMyspD_ffrx0Qg2Ha7c,24
89
100
  RinUI/utils/qmldir,sha256=0tTlmbIgNtRRNgqAJ2IAloJIAtwO6lXITV3ciaWLpCs,193
90
101
  RinUI/windows/CtrlBtn.qml,sha256=R4c_ZQxv2SFNnuOsCnq0_dH3THEQkZVl41ZFkVG8IR0,3390
91
102
  RinUI/windows/FluentPage.qml,sha256=UBhBZcQbO5hJNmXlOLlDVWSVYBlu73wa1CAKlxgjows,2840
92
- RinUI/windows/FluentWindow.qml,sha256=3GkWomOiS1sGPcQ7SQZxl65v-nIIbgig_M2tjy-WQq0,890
93
- RinUI/windows/FluentWindowBase.qml,sha256=vsVnvkO_RshTEPQ_bKFEjIzJFJnAR11vDi0m9akF_PI,4822
94
- RinUI/windows/TitleBar.qml,sha256=Vs0LR1ZW5kTVbkJpIFvH5uUGVWj2Gjtjq25XmF8TJK8,3875
103
+ RinUI/windows/FluentWindow.qml,sha256=FBsc2Wl16oS4KIuN4d0uMP35jSluq2y4l0DZnfWVdoM,856
104
+ RinUI/windows/FluentWindowBase.qml,sha256=kt9AG1_ACilx5cMhjMQ6OfBz8EPMjwOJBV5xJ04_mNo,4783
105
+ RinUI/windows/TitleBar.qml,sha256=ssCtj9QtXAQuL7zVn87KlaSnhiEUgMvsiwPBKVZeGpU,3877
95
106
  RinUI/windows/qmldir,sha256=8zVLwFf2mHV3QKp13YnR6OkayRpZl7bHpxSdRdBthK4,212
96
107
  RinUI/windows/window/ApplicationWindow.qml,sha256=sVgqmUEk0bh0QfmF5trs7-W3FaEdYUIYDx7Tv5Pdeww,196
97
108
  RinUI/windows/window/Window.qml,sha256=hQ6aPNv37my-A1cB3EwrxKr8HeYzQqv2LFlS8XCdqto,3603
98
- rinui-0.0.10.1.data/data/LICENSE,sha256=5tTvyBFn2yeDG5EfIkn4FRJKHXNKRomDVGxssfzXtqg,1084
99
- rinui-0.0.10.1.data/data/README.md,sha256=gx8GTGDQ3Kw1HJVjgYd0k77CLdLxAdEQL9vZZJde08o,2980
100
- rinui-0.0.10.1.dist-info/LICENSE,sha256=5tTvyBFn2yeDG5EfIkn4FRJKHXNKRomDVGxssfzXtqg,1084
101
- rinui-0.0.10.1.dist-info/METADATA,sha256=2PFX3hcvxYXB40Iusz85g8rdJj2AZEW99HcP41jtyio,3521
102
- rinui-0.0.10.1.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
103
- rinui-0.0.10.1.dist-info/entry_points.txt,sha256=taxuZYCggoQa2LPubwcurQYRjBRC4cNYOjWaqOYZVxw,54
104
- rinui-0.0.10.1.dist-info/top_level.txt,sha256=vKKjXBXEw5OFRIzTxZWUC5ZOj0CK5e3atbymBB4eJ6w,6
105
- rinui-0.0.10.1.dist-info/RECORD,,
109
+ rinui-0.1.0.data/data/LICENSE,sha256=5tTvyBFn2yeDG5EfIkn4FRJKHXNKRomDVGxssfzXtqg,1084
110
+ rinui-0.1.0.data/data/README.md,sha256=3dpuJ-ecybFTR247R9DKVnEwLQ18eZqvfd8qU1NfQRI,3187
111
+ rinui-0.1.0.dist-info/LICENSE,sha256=5tTvyBFn2yeDG5EfIkn4FRJKHXNKRomDVGxssfzXtqg,1084
112
+ rinui-0.1.0.dist-info/METADATA,sha256=2JIDWunumAlaynIUVkVq0W-WldAhkRl3n07QqQ-yTI0,3725
113
+ rinui-0.1.0.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
114
+ rinui-0.1.0.dist-info/entry_points.txt,sha256=taxuZYCggoQa2LPubwcurQYRjBRC4cNYOjWaqOYZVxw,54
115
+ rinui-0.1.0.dist-info/top_level.txt,sha256=vKKjXBXEw5OFRIzTxZWUC5ZOj0CK5e3atbymBB4eJ6w,6
116
+ rinui-0.1.0.dist-info/RECORD,,
File without changes