pyqtdarktheme-revived 1.1.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.
- pyqtdarktheme_revived-1.1.1/LICENSE.txt +21 -0
- pyqtdarktheme_revived-1.1.1/PKG-INFO +189 -0
- pyqtdarktheme_revived-1.1.1/README.md +172 -0
- pyqtdarktheme_revived-1.1.1/pyproject.toml +26 -0
- pyqtdarktheme_revived-1.1.1/pyqtdarktheme_revived.egg-info/PKG-INFO +189 -0
- pyqtdarktheme_revived-1.1.1/pyqtdarktheme_revived.egg-info/SOURCES.txt +22 -0
- pyqtdarktheme_revived-1.1.1/pyqtdarktheme_revived.egg-info/dependency_links.txt +1 -0
- pyqtdarktheme_revived-1.1.1/pyqtdarktheme_revived.egg-info/requires.txt +1 -0
- pyqtdarktheme_revived-1.1.1/pyqtdarktheme_revived.egg-info/top_level.txt +1 -0
- pyqtdarktheme_revived-1.1.1/qdarktheme/__init__.py +46 -0
- pyqtdarktheme_revived-1.1.1/qdarktheme/_color.py +231 -0
- pyqtdarktheme_revived-1.1.1/qdarktheme/_main.py +178 -0
- pyqtdarktheme_revived-1.1.1/qdarktheme/_proxy_style.py +34 -0
- pyqtdarktheme_revived-1.1.1/qdarktheme/_style_loader.py +302 -0
- pyqtdarktheme_revived-1.1.1/qdarktheme/_util.py +82 -0
- pyqtdarktheme_revived-1.1.1/setup.cfg +4 -0
- pyqtdarktheme_revived-1.1.1/tests/test_color.py +121 -0
- pyqtdarktheme_revived-1.1.1/tests/test_filters.py +72 -0
- pyqtdarktheme_revived-1.1.1/tests/test_qdarktheme.py +115 -0
- pyqtdarktheme_revived-1.1.1/tests/test_qdarktheme_with_qt.py +92 -0
- pyqtdarktheme_revived-1.1.1/tests/test_svg.py +47 -0
- pyqtdarktheme_revived-1.1.1/tests/test_template_engine.py +51 -0
- pyqtdarktheme_revived-1.1.1/tests/test_util.py +54 -0
- pyqtdarktheme_revived-1.1.1/tests/test_widget_gallery.py +31 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2021-2022 Yunosuke Ohsugi
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pyqtdarktheme-revived
|
|
3
|
+
Version: 1.1.1
|
|
4
|
+
Summary: A flat dark theme for PyQt and PySide applications (revived for Python 3.8-3.13)
|
|
5
|
+
Classifier: Programming Language :: Python :: 3
|
|
6
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
7
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
8
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
12
|
+
Requires-Python: <3.14,>=3.8
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
License-File: LICENSE.txt
|
|
15
|
+
Requires-Dist: darkdetect>=0.7.1
|
|
16
|
+
Dynamic: license-file
|
|
17
|
+
|
|
18
|
+
# PyQtDarkTheme-revived
|
|
19
|
+
|
|
20
|
+
Credit for this goes to 5yutan5, I simply extended the python version range so pip would install it since project
|
|
21
|
+
had not been updated for quite a while. Retains same MIT license.
|
|
22
|
+
|
|
23
|
+
Now supports python 3.8 to 3.13
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
Origional README:
|
|
27
|
+
|
|
28
|
+
# PyQtDarkTheme
|
|
29
|
+
|
|
30
|
+
PyQtDarkTheme applies a flat dark theme to QtWidgets application. There's a light theme too. Color balanced from the dark theme for easy viewing in daylight.
|
|
31
|
+
|
|
32
|
+
Check out the [complete documentation](https://pyqtdarktheme.readthedocs.io).
|
|
33
|
+
|
|
34
|
+
**Project status**
|
|
35
|
+
[](https://pypi.org/project/pyqtdarktheme/)
|
|
36
|
+
[](https://www.python.org/downloads/)
|
|
37
|
+
[](https://www.qt.io/qt-for-python)
|
|
38
|
+
[](https://github.com/5yutan5/PyQtDarkTheme/blob/main/LICENSE.txt/)
|
|
39
|
+
|
|
40
|
+
**Tests**
|
|
41
|
+
[](https://results.pre-commit.ci/latest/github/5yutan5/PyQtDarkTheme/main)
|
|
42
|
+
[](https://codecov.io/gh/5yutan5/PyQtDarkTheme)
|
|
43
|
+
[](https://pyqtdarktheme.readthedocs.io/en/latest/?badge=latest)
|
|
44
|
+
|
|
45
|
+
## Features
|
|
46
|
+
|
|
47
|
+
- A flat dark and light theme
|
|
48
|
+
- Support PySide and PyQt
|
|
49
|
+
- Sync with OS's theme and accent (Mac, Windows, Linux)
|
|
50
|
+
- Resolve the style differences between Qt versions
|
|
51
|
+
- Provide dark/light theme QPalette
|
|
52
|
+
- Override Qt old standard icons
|
|
53
|
+
|
|
54
|
+
## Themes
|
|
55
|
+
|
|
56
|
+
### Dark Theme
|
|
57
|
+
|
|
58
|
+

|
|
59
|
+
|
|
60
|
+
### Light Theme
|
|
61
|
+
|
|
62
|
+

|
|
63
|
+
|
|
64
|
+
## Requirements
|
|
65
|
+
|
|
66
|
+
- [Python 3.7+](https://www.python.org/downloads/)
|
|
67
|
+
- Qt 5.15+
|
|
68
|
+
- PySide6, PyQt6, PyQt5 or PySide2
|
|
69
|
+
|
|
70
|
+
## Installation Method
|
|
71
|
+
|
|
72
|
+
- Last released version
|
|
73
|
+
|
|
74
|
+
```plaintext
|
|
75
|
+
pip install pyqtdarktheme
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
- Latest development version
|
|
79
|
+
|
|
80
|
+
```plaintext
|
|
81
|
+
pip install git+https://github.com/5yutan5/PyQtDarkTheme.git@main
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Usage
|
|
85
|
+
|
|
86
|
+
```Python
|
|
87
|
+
import sys
|
|
88
|
+
|
|
89
|
+
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton
|
|
90
|
+
|
|
91
|
+
import qdarktheme
|
|
92
|
+
|
|
93
|
+
app = QApplication(sys.argv)
|
|
94
|
+
# Apply the complete dark theme to your Qt App.
|
|
95
|
+
qdarktheme.setup_theme()
|
|
96
|
+
|
|
97
|
+
main_win = QMainWindow()
|
|
98
|
+
push_button = QPushButton("PyQtDarkTheme!!")
|
|
99
|
+
main_win.setCentralWidget(push_button)
|
|
100
|
+
|
|
101
|
+
main_win.show()
|
|
102
|
+
|
|
103
|
+
app.exec()
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Further information can be found in our docs:
|
|
107
|
+
|
|
108
|
+
- [Usage Guide](https://pyqtdarktheme.readthedocs.io/en/latest/how_to_use.html)
|
|
109
|
+
|
|
110
|
+
### Enable HiDPI
|
|
111
|
+
|
|
112
|
+
```Python
|
|
113
|
+
# enable_hi_dpi() must be called before the instantiation of QApplication.
|
|
114
|
+
qdarktheme.enable_hi_dpi()
|
|
115
|
+
app = QApplication(sys.argv)
|
|
116
|
+
qdarktheme.setup_theme()
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
For Qt6 bindings, HiDPI “just works” without using this function.
|
|
120
|
+
|
|
121
|
+
### Light theme
|
|
122
|
+
|
|
123
|
+
```Python
|
|
124
|
+
qdarktheme.setup_theme("light")
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Sync with OS's theme and accent
|
|
128
|
+
|
|
129
|
+
```Python
|
|
130
|
+
qdarktheme.setup_theme("auto")
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+

|
|
134
|
+
|
|
135
|
+
On macOS, qdarktheme also syncs with accent colors.
|
|
136
|
+

|
|
137
|
+
|
|
138
|
+
### Customizing colors
|
|
139
|
+
|
|
140
|
+
You can customize the theme color.
|
|
141
|
+
|
|
142
|
+
```python
|
|
143
|
+
# Customize accent color.
|
|
144
|
+
qdarktheme.setup_theme(custom_colors={"primary": "#D0BCFF"})
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
For a list of all customizable colors, see the Theme Color Reference:
|
|
148
|
+
|
|
149
|
+
- [Theme Color](https://pyqtdarktheme.readthedocs.io/en/latest/reference/theme_color.html)
|
|
150
|
+
|
|
151
|
+
### Sharp frame
|
|
152
|
+
|
|
153
|
+
You can change the corner style.
|
|
154
|
+
|
|
155
|
+
```python
|
|
156
|
+
# Default is "rounded".
|
|
157
|
+
stylesheet = qdarktheme.setup_theme(corner_shape="sharp")
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### QPalette and stylesheet
|
|
161
|
+
|
|
162
|
+
You can also only load QPalette and stylesheet. `qdarktheme.setup_theme` uses the following functions internally.
|
|
163
|
+
|
|
164
|
+
```Python
|
|
165
|
+
palette = qdarktheme.load_palette(theme="dark")
|
|
166
|
+
stylesheet = qdarktheme.load_stylesheet(theme="dark")
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## Example
|
|
170
|
+
|
|
171
|
+
To check all Qt widgets, run:
|
|
172
|
+
|
|
173
|
+
```plaintext
|
|
174
|
+
python -m qdarktheme.widget_gallery
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
## License
|
|
178
|
+
|
|
179
|
+
The svg files for the PyQtDarkTheme are derived [Material design icons](https://fonts.google.com/icons)(Apache License Version 2.0). Qt stylesheets are originally fork of [QDarkStyleSheet](https://github.com/ColinDuquesnoy/QDarkStyleSheet)(MIT License). Other files are covered by PyQtDarkTheme's MIT license. The accent detector(qdarktheme/_os_appearance/_accent/_mac_detect) is inspired by [darkdetect](https://github.com/albertosottile/darkdetect)(3-clause BSD License).
|
|
180
|
+
|
|
181
|
+
## Contributing
|
|
182
|
+
|
|
183
|
+
All contributions, bug reports, bug fixes, documentation improvements, enhancements, and ideas are welcome. You can get started by reading this:
|
|
184
|
+
|
|
185
|
+
- [Contributing Guide](https://pyqtdarktheme.readthedocs.io/en/latest/contributing.html)
|
|
186
|
+
|
|
187
|
+
## Change log
|
|
188
|
+
|
|
189
|
+
See [Releases](https://github.com/5yutan5/PyQtDarkTheme/releases).
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# PyQtDarkTheme-revived
|
|
2
|
+
|
|
3
|
+
Credit for this goes to 5yutan5, I simply extended the python version range so pip would install it since project
|
|
4
|
+
had not been updated for quite a while. Retains same MIT license.
|
|
5
|
+
|
|
6
|
+
Now supports python 3.8 to 3.13
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
Origional README:
|
|
10
|
+
|
|
11
|
+
# PyQtDarkTheme
|
|
12
|
+
|
|
13
|
+
PyQtDarkTheme applies a flat dark theme to QtWidgets application. There's a light theme too. Color balanced from the dark theme for easy viewing in daylight.
|
|
14
|
+
|
|
15
|
+
Check out the [complete documentation](https://pyqtdarktheme.readthedocs.io).
|
|
16
|
+
|
|
17
|
+
**Project status**
|
|
18
|
+
[](https://pypi.org/project/pyqtdarktheme/)
|
|
19
|
+
[](https://www.python.org/downloads/)
|
|
20
|
+
[](https://www.qt.io/qt-for-python)
|
|
21
|
+
[](https://github.com/5yutan5/PyQtDarkTheme/blob/main/LICENSE.txt/)
|
|
22
|
+
|
|
23
|
+
**Tests**
|
|
24
|
+
[](https://results.pre-commit.ci/latest/github/5yutan5/PyQtDarkTheme/main)
|
|
25
|
+
[](https://codecov.io/gh/5yutan5/PyQtDarkTheme)
|
|
26
|
+
[](https://pyqtdarktheme.readthedocs.io/en/latest/?badge=latest)
|
|
27
|
+
|
|
28
|
+
## Features
|
|
29
|
+
|
|
30
|
+
- A flat dark and light theme
|
|
31
|
+
- Support PySide and PyQt
|
|
32
|
+
- Sync with OS's theme and accent (Mac, Windows, Linux)
|
|
33
|
+
- Resolve the style differences between Qt versions
|
|
34
|
+
- Provide dark/light theme QPalette
|
|
35
|
+
- Override Qt old standard icons
|
|
36
|
+
|
|
37
|
+
## Themes
|
|
38
|
+
|
|
39
|
+
### Dark Theme
|
|
40
|
+
|
|
41
|
+

|
|
42
|
+
|
|
43
|
+
### Light Theme
|
|
44
|
+
|
|
45
|
+

|
|
46
|
+
|
|
47
|
+
## Requirements
|
|
48
|
+
|
|
49
|
+
- [Python 3.7+](https://www.python.org/downloads/)
|
|
50
|
+
- Qt 5.15+
|
|
51
|
+
- PySide6, PyQt6, PyQt5 or PySide2
|
|
52
|
+
|
|
53
|
+
## Installation Method
|
|
54
|
+
|
|
55
|
+
- Last released version
|
|
56
|
+
|
|
57
|
+
```plaintext
|
|
58
|
+
pip install pyqtdarktheme
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
- Latest development version
|
|
62
|
+
|
|
63
|
+
```plaintext
|
|
64
|
+
pip install git+https://github.com/5yutan5/PyQtDarkTheme.git@main
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Usage
|
|
68
|
+
|
|
69
|
+
```Python
|
|
70
|
+
import sys
|
|
71
|
+
|
|
72
|
+
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton
|
|
73
|
+
|
|
74
|
+
import qdarktheme
|
|
75
|
+
|
|
76
|
+
app = QApplication(sys.argv)
|
|
77
|
+
# Apply the complete dark theme to your Qt App.
|
|
78
|
+
qdarktheme.setup_theme()
|
|
79
|
+
|
|
80
|
+
main_win = QMainWindow()
|
|
81
|
+
push_button = QPushButton("PyQtDarkTheme!!")
|
|
82
|
+
main_win.setCentralWidget(push_button)
|
|
83
|
+
|
|
84
|
+
main_win.show()
|
|
85
|
+
|
|
86
|
+
app.exec()
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Further information can be found in our docs:
|
|
90
|
+
|
|
91
|
+
- [Usage Guide](https://pyqtdarktheme.readthedocs.io/en/latest/how_to_use.html)
|
|
92
|
+
|
|
93
|
+
### Enable HiDPI
|
|
94
|
+
|
|
95
|
+
```Python
|
|
96
|
+
# enable_hi_dpi() must be called before the instantiation of QApplication.
|
|
97
|
+
qdarktheme.enable_hi_dpi()
|
|
98
|
+
app = QApplication(sys.argv)
|
|
99
|
+
qdarktheme.setup_theme()
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
For Qt6 bindings, HiDPI “just works” without using this function.
|
|
103
|
+
|
|
104
|
+
### Light theme
|
|
105
|
+
|
|
106
|
+
```Python
|
|
107
|
+
qdarktheme.setup_theme("light")
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Sync with OS's theme and accent
|
|
111
|
+
|
|
112
|
+
```Python
|
|
113
|
+
qdarktheme.setup_theme("auto")
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+

|
|
117
|
+
|
|
118
|
+
On macOS, qdarktheme also syncs with accent colors.
|
|
119
|
+

|
|
120
|
+
|
|
121
|
+
### Customizing colors
|
|
122
|
+
|
|
123
|
+
You can customize the theme color.
|
|
124
|
+
|
|
125
|
+
```python
|
|
126
|
+
# Customize accent color.
|
|
127
|
+
qdarktheme.setup_theme(custom_colors={"primary": "#D0BCFF"})
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
For a list of all customizable colors, see the Theme Color Reference:
|
|
131
|
+
|
|
132
|
+
- [Theme Color](https://pyqtdarktheme.readthedocs.io/en/latest/reference/theme_color.html)
|
|
133
|
+
|
|
134
|
+
### Sharp frame
|
|
135
|
+
|
|
136
|
+
You can change the corner style.
|
|
137
|
+
|
|
138
|
+
```python
|
|
139
|
+
# Default is "rounded".
|
|
140
|
+
stylesheet = qdarktheme.setup_theme(corner_shape="sharp")
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### QPalette and stylesheet
|
|
144
|
+
|
|
145
|
+
You can also only load QPalette and stylesheet. `qdarktheme.setup_theme` uses the following functions internally.
|
|
146
|
+
|
|
147
|
+
```Python
|
|
148
|
+
palette = qdarktheme.load_palette(theme="dark")
|
|
149
|
+
stylesheet = qdarktheme.load_stylesheet(theme="dark")
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## Example
|
|
153
|
+
|
|
154
|
+
To check all Qt widgets, run:
|
|
155
|
+
|
|
156
|
+
```plaintext
|
|
157
|
+
python -m qdarktheme.widget_gallery
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## License
|
|
161
|
+
|
|
162
|
+
The svg files for the PyQtDarkTheme are derived [Material design icons](https://fonts.google.com/icons)(Apache License Version 2.0). Qt stylesheets are originally fork of [QDarkStyleSheet](https://github.com/ColinDuquesnoy/QDarkStyleSheet)(MIT License). Other files are covered by PyQtDarkTheme's MIT license. The accent detector(qdarktheme/_os_appearance/_accent/_mac_detect) is inspired by [darkdetect](https://github.com/albertosottile/darkdetect)(3-clause BSD License).
|
|
163
|
+
|
|
164
|
+
## Contributing
|
|
165
|
+
|
|
166
|
+
All contributions, bug reports, bug fixes, documentation improvements, enhancements, and ideas are welcome. You can get started by reading this:
|
|
167
|
+
|
|
168
|
+
- [Contributing Guide](https://pyqtdarktheme.readthedocs.io/en/latest/contributing.html)
|
|
169
|
+
|
|
170
|
+
## Change log
|
|
171
|
+
|
|
172
|
+
See [Releases](https://github.com/5yutan5/PyQtDarkTheme/releases).
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "pyqtdarktheme-revived"
|
|
3
|
+
version = "1.1.1"
|
|
4
|
+
description = "A flat dark theme for PyQt and PySide applications (revived for Python 3.8-3.13)"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.8, <3.14"
|
|
7
|
+
classifiers = [
|
|
8
|
+
"Programming Language :: Python :: 3",
|
|
9
|
+
"Programming Language :: Python :: 3.8",
|
|
10
|
+
"Programming Language :: Python :: 3.9",
|
|
11
|
+
"Programming Language :: Python :: 3.10",
|
|
12
|
+
"Programming Language :: Python :: 3.11",
|
|
13
|
+
"Programming Language :: Python :: 3.12",
|
|
14
|
+
"Programming Language :: Python :: 3.13",
|
|
15
|
+
]
|
|
16
|
+
dependencies = [
|
|
17
|
+
"darkdetect>=0.7.1"
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
[build-system]
|
|
21
|
+
requires = ["setuptools>=61.0.0", "wheel"]
|
|
22
|
+
build-backend = "setuptools.build_meta"
|
|
23
|
+
|
|
24
|
+
[tool.setuptools]
|
|
25
|
+
packages = ["qdarktheme"]
|
|
26
|
+
include-package-data = true
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pyqtdarktheme-revived
|
|
3
|
+
Version: 1.1.1
|
|
4
|
+
Summary: A flat dark theme for PyQt and PySide applications (revived for Python 3.8-3.13)
|
|
5
|
+
Classifier: Programming Language :: Python :: 3
|
|
6
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
7
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
8
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
12
|
+
Requires-Python: <3.14,>=3.8
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
License-File: LICENSE.txt
|
|
15
|
+
Requires-Dist: darkdetect>=0.7.1
|
|
16
|
+
Dynamic: license-file
|
|
17
|
+
|
|
18
|
+
# PyQtDarkTheme-revived
|
|
19
|
+
|
|
20
|
+
Credit for this goes to 5yutan5, I simply extended the python version range so pip would install it since project
|
|
21
|
+
had not been updated for quite a while. Retains same MIT license.
|
|
22
|
+
|
|
23
|
+
Now supports python 3.8 to 3.13
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
Origional README:
|
|
27
|
+
|
|
28
|
+
# PyQtDarkTheme
|
|
29
|
+
|
|
30
|
+
PyQtDarkTheme applies a flat dark theme to QtWidgets application. There's a light theme too. Color balanced from the dark theme for easy viewing in daylight.
|
|
31
|
+
|
|
32
|
+
Check out the [complete documentation](https://pyqtdarktheme.readthedocs.io).
|
|
33
|
+
|
|
34
|
+
**Project status**
|
|
35
|
+
[](https://pypi.org/project/pyqtdarktheme/)
|
|
36
|
+
[](https://www.python.org/downloads/)
|
|
37
|
+
[](https://www.qt.io/qt-for-python)
|
|
38
|
+
[](https://github.com/5yutan5/PyQtDarkTheme/blob/main/LICENSE.txt/)
|
|
39
|
+
|
|
40
|
+
**Tests**
|
|
41
|
+
[](https://results.pre-commit.ci/latest/github/5yutan5/PyQtDarkTheme/main)
|
|
42
|
+
[](https://codecov.io/gh/5yutan5/PyQtDarkTheme)
|
|
43
|
+
[](https://pyqtdarktheme.readthedocs.io/en/latest/?badge=latest)
|
|
44
|
+
|
|
45
|
+
## Features
|
|
46
|
+
|
|
47
|
+
- A flat dark and light theme
|
|
48
|
+
- Support PySide and PyQt
|
|
49
|
+
- Sync with OS's theme and accent (Mac, Windows, Linux)
|
|
50
|
+
- Resolve the style differences between Qt versions
|
|
51
|
+
- Provide dark/light theme QPalette
|
|
52
|
+
- Override Qt old standard icons
|
|
53
|
+
|
|
54
|
+
## Themes
|
|
55
|
+
|
|
56
|
+
### Dark Theme
|
|
57
|
+
|
|
58
|
+

|
|
59
|
+
|
|
60
|
+
### Light Theme
|
|
61
|
+
|
|
62
|
+

|
|
63
|
+
|
|
64
|
+
## Requirements
|
|
65
|
+
|
|
66
|
+
- [Python 3.7+](https://www.python.org/downloads/)
|
|
67
|
+
- Qt 5.15+
|
|
68
|
+
- PySide6, PyQt6, PyQt5 or PySide2
|
|
69
|
+
|
|
70
|
+
## Installation Method
|
|
71
|
+
|
|
72
|
+
- Last released version
|
|
73
|
+
|
|
74
|
+
```plaintext
|
|
75
|
+
pip install pyqtdarktheme
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
- Latest development version
|
|
79
|
+
|
|
80
|
+
```plaintext
|
|
81
|
+
pip install git+https://github.com/5yutan5/PyQtDarkTheme.git@main
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Usage
|
|
85
|
+
|
|
86
|
+
```Python
|
|
87
|
+
import sys
|
|
88
|
+
|
|
89
|
+
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton
|
|
90
|
+
|
|
91
|
+
import qdarktheme
|
|
92
|
+
|
|
93
|
+
app = QApplication(sys.argv)
|
|
94
|
+
# Apply the complete dark theme to your Qt App.
|
|
95
|
+
qdarktheme.setup_theme()
|
|
96
|
+
|
|
97
|
+
main_win = QMainWindow()
|
|
98
|
+
push_button = QPushButton("PyQtDarkTheme!!")
|
|
99
|
+
main_win.setCentralWidget(push_button)
|
|
100
|
+
|
|
101
|
+
main_win.show()
|
|
102
|
+
|
|
103
|
+
app.exec()
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Further information can be found in our docs:
|
|
107
|
+
|
|
108
|
+
- [Usage Guide](https://pyqtdarktheme.readthedocs.io/en/latest/how_to_use.html)
|
|
109
|
+
|
|
110
|
+
### Enable HiDPI
|
|
111
|
+
|
|
112
|
+
```Python
|
|
113
|
+
# enable_hi_dpi() must be called before the instantiation of QApplication.
|
|
114
|
+
qdarktheme.enable_hi_dpi()
|
|
115
|
+
app = QApplication(sys.argv)
|
|
116
|
+
qdarktheme.setup_theme()
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
For Qt6 bindings, HiDPI “just works” without using this function.
|
|
120
|
+
|
|
121
|
+
### Light theme
|
|
122
|
+
|
|
123
|
+
```Python
|
|
124
|
+
qdarktheme.setup_theme("light")
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Sync with OS's theme and accent
|
|
128
|
+
|
|
129
|
+
```Python
|
|
130
|
+
qdarktheme.setup_theme("auto")
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+

|
|
134
|
+
|
|
135
|
+
On macOS, qdarktheme also syncs with accent colors.
|
|
136
|
+

|
|
137
|
+
|
|
138
|
+
### Customizing colors
|
|
139
|
+
|
|
140
|
+
You can customize the theme color.
|
|
141
|
+
|
|
142
|
+
```python
|
|
143
|
+
# Customize accent color.
|
|
144
|
+
qdarktheme.setup_theme(custom_colors={"primary": "#D0BCFF"})
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
For a list of all customizable colors, see the Theme Color Reference:
|
|
148
|
+
|
|
149
|
+
- [Theme Color](https://pyqtdarktheme.readthedocs.io/en/latest/reference/theme_color.html)
|
|
150
|
+
|
|
151
|
+
### Sharp frame
|
|
152
|
+
|
|
153
|
+
You can change the corner style.
|
|
154
|
+
|
|
155
|
+
```python
|
|
156
|
+
# Default is "rounded".
|
|
157
|
+
stylesheet = qdarktheme.setup_theme(corner_shape="sharp")
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### QPalette and stylesheet
|
|
161
|
+
|
|
162
|
+
You can also only load QPalette and stylesheet. `qdarktheme.setup_theme` uses the following functions internally.
|
|
163
|
+
|
|
164
|
+
```Python
|
|
165
|
+
palette = qdarktheme.load_palette(theme="dark")
|
|
166
|
+
stylesheet = qdarktheme.load_stylesheet(theme="dark")
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## Example
|
|
170
|
+
|
|
171
|
+
To check all Qt widgets, run:
|
|
172
|
+
|
|
173
|
+
```plaintext
|
|
174
|
+
python -m qdarktheme.widget_gallery
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
## License
|
|
178
|
+
|
|
179
|
+
The svg files for the PyQtDarkTheme are derived [Material design icons](https://fonts.google.com/icons)(Apache License Version 2.0). Qt stylesheets are originally fork of [QDarkStyleSheet](https://github.com/ColinDuquesnoy/QDarkStyleSheet)(MIT License). Other files are covered by PyQtDarkTheme's MIT license. The accent detector(qdarktheme/_os_appearance/_accent/_mac_detect) is inspired by [darkdetect](https://github.com/albertosottile/darkdetect)(3-clause BSD License).
|
|
180
|
+
|
|
181
|
+
## Contributing
|
|
182
|
+
|
|
183
|
+
All contributions, bug reports, bug fixes, documentation improvements, enhancements, and ideas are welcome. You can get started by reading this:
|
|
184
|
+
|
|
185
|
+
- [Contributing Guide](https://pyqtdarktheme.readthedocs.io/en/latest/contributing.html)
|
|
186
|
+
|
|
187
|
+
## Change log
|
|
188
|
+
|
|
189
|
+
See [Releases](https://github.com/5yutan5/PyQtDarkTheme/releases).
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
LICENSE.txt
|
|
2
|
+
README.md
|
|
3
|
+
pyproject.toml
|
|
4
|
+
pyqtdarktheme_revived.egg-info/PKG-INFO
|
|
5
|
+
pyqtdarktheme_revived.egg-info/SOURCES.txt
|
|
6
|
+
pyqtdarktheme_revived.egg-info/dependency_links.txt
|
|
7
|
+
pyqtdarktheme_revived.egg-info/requires.txt
|
|
8
|
+
pyqtdarktheme_revived.egg-info/top_level.txt
|
|
9
|
+
qdarktheme/__init__.py
|
|
10
|
+
qdarktheme/_color.py
|
|
11
|
+
qdarktheme/_main.py
|
|
12
|
+
qdarktheme/_proxy_style.py
|
|
13
|
+
qdarktheme/_style_loader.py
|
|
14
|
+
qdarktheme/_util.py
|
|
15
|
+
tests/test_color.py
|
|
16
|
+
tests/test_filters.py
|
|
17
|
+
tests/test_qdarktheme.py
|
|
18
|
+
tests/test_qdarktheme_with_qt.py
|
|
19
|
+
tests/test_svg.py
|
|
20
|
+
tests/test_template_engine.py
|
|
21
|
+
tests/test_util.py
|
|
22
|
+
tests/test_widget_gallery.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
darkdetect>=0.7.1
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
qdarktheme
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"""PyQtDarkTheme - A flat dark theme for PySide and PyQt.
|
|
2
|
+
|
|
3
|
+
- Repository: https://github.com/5yutan5/PyQtDarkTheme
|
|
4
|
+
- Documentation: https://pyqtdarktheme.readthedocs.io
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
License Information
|
|
8
|
+
===================
|
|
9
|
+
|
|
10
|
+
Material design icons
|
|
11
|
+
---------------------
|
|
12
|
+
|
|
13
|
+
All svg files in PyQtDarkTheme is from Material design icons(which uses an Apache 2.0 license).
|
|
14
|
+
|
|
15
|
+
- Author: Google
|
|
16
|
+
- Site: https://fonts.google.com/icons
|
|
17
|
+
- Source: https://github.com/google/material-design-icons
|
|
18
|
+
- License: Apache License Version 2.0 | https://www.apache.org/licenses/LICENSE-2.0.txt
|
|
19
|
+
|
|
20
|
+
Modifications made to each files to change the icon color and angle and remove svg namespace.
|
|
21
|
+
|
|
22
|
+
The current Material design icons license summary can be viewed at:
|
|
23
|
+
https://github.com/google/material-design-icons/blob/master/LICENSE
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
QDarkStyleSheet(Source code)
|
|
27
|
+
----------------------------
|
|
28
|
+
|
|
29
|
+
Qt stylesheets are originally fork of QDarkStyleSheet(MIT License).
|
|
30
|
+
|
|
31
|
+
- Author: Colin Duquesnoy
|
|
32
|
+
- Site: https://github.com/ColinDuquesnoy/QDarkStyleSheet
|
|
33
|
+
- Source: https://github.com/ColinDuquesnoy/QDarkStyleSheet
|
|
34
|
+
- License: MIT License | https://opensource.org/licenses/MIT
|
|
35
|
+
|
|
36
|
+
Modifications made to a file to change the style.
|
|
37
|
+
|
|
38
|
+
The current QDarkStyleSheet license summary can be viewed at:
|
|
39
|
+
https://github.com/ColinDuquesnoy/QDarkStyleSheet/blob/master/LICENSE.rst
|
|
40
|
+
|
|
41
|
+
"""
|
|
42
|
+
# Version of PyQtDarkTheme
|
|
43
|
+
__version__ = "2.1.0"
|
|
44
|
+
|
|
45
|
+
from qdarktheme._main import enable_hi_dpi, setup_theme, stop_sync
|
|
46
|
+
from qdarktheme._style_loader import clear_cache, get_themes, load_palette, load_stylesheet
|