QDarkStyleSheet
|构建状态| |文档状态| |最新PyPI版本| |许可证:MIT| |许可证:CC BY 4.0| |行为准则|
这是最完整的Qt应用程序(Qt4*、Qt5、PySide*、PySide2、PySide6、PyQt4*、PyQt5、PyQt6、QtPy、PyQtGraph、Qt.Py)深色/浅色样式表,适用于Python 2*/3和C++。
查看完整文档。<https://qdarkstylesheet.readthedocs.io/en/latest/screenshots.html>
__
有什么新内容?
版本3
在当前的版本3中,`qdarkstyle`现在作为一个主题框架工作,目前支持深色/浅色主题,保持样式化的小部件在不同主题颜色下保持一致。
调色板已经重新定义和改进(UI/UX),以接受更多颜色,并能够实现新主题,这要感谢`Spyder团队<https://github.com/spyder-ide/spyder>`__的合作。
当前的稳定版本使用Python 3(最好是3.6+)和Qt5(PyQt5和PySide 2)。此外,在这个版本中,还增加了Qt6(PyQt6、PySide6)的选项。
当前用于Qt6的版本可能仍存在不稳定性。
[*] Python 2以及Qt4(PyQt4和PySide)将不再被支持。它们仍然存在,但不会实现向后兼容、修复或新功能。
版本2
在v2.8中,我们转向使用QtPy来简化您的代码,因此这现在是一个必需的依赖项。我们在三个主要类别中包含了特殊补丁:操作系统、Qt/绑定版本、应用程序。
其中,包含/修复了大量小部件的样式。还包含了一个Qt应用程序示例(仅限Python),其中包含几乎所有类型的小部件和组合,作为新样式的作品集和检查清单。
我们在v2.7中添加了SCSS,因此可以通过编程方式访问调色板。此外,还添加了许多脚本,为想要更改我们调色板颜色的开发人员提供自由。所有图像和图标都经过修订,还为所有图像和图标创建了SVG文件。
在2.6版及以后的版本中,提供了一个重构的样式表。调色板只有9种颜色。大多数小部件都经过修订,它们的样式也得到了改进。我们还提供了一个命令行(脚本)来获取在提交问题时可能会用到的信息。请参见下面的图片。
版本1
QDarkStyle的第一个稳定版本。
安装
------------
Python
~~~~~~
从PyPI:使用*pip*获取最新的稳定版本的``qdarkstyle``包(推荐):
.. code:: bash
pip install qdarkstyle
从代码:下载/克隆项目,进入``qdarkstyle``文件夹,然后:
- 您可以使用*setup*脚本和pip安装。
.. code:: bash
pip install .
- 或者,您可以使用Python的*setup*脚本:
.. code:: bash
python setup.py install
C++
~~~
- 下载/克隆项目并将以下文件复制到您的应用程序目录(保持现有的目录层次结构)。
将所有**THEME**词替换为当前可用的(深色/浅色)您需要使用的主题。
- **qdarkstyle/THEME/THEMEstyle.qss**
- **qdarkstyle/THEME/THEMEstyle.qrc**
- **qdarkstyle/THEME/rc/** (整个目录)
- 将**qdarkstyle/THEME/THEMEstyle.qrc**添加到您的**.pro文件**中,如下所示:
.. code:: c++
RESOURCES += qdarkstyle/THEME/THEMEstyle.qrc
- 加载样式表:
.. code:: c++
QFile f(":qdarkstyle/THEME/THEMEstyle.qss");
if (!f.exists()) {
printf("无法设置样式表,未找到文件\n");
}
else {
f.open(QFile::ReadOnly | QFile::Text);
QTextStream ts(&f);
qApp->setStyleSheet(ts.readAll());
}
注意:文件名中的":"是必需的,用于将该文件定义为资源库。有关更多信息,请参阅`此处的讨论<https://github.com/ColinDuquesnoy/QDarkStyleSheet/pull/87>`__。
在应用程序中的使用
---------------------
如果您的项目已经使用QtPy或者您需要以编程方式设置它,那么会更加简单
.. code:: python
import sys
import qdarkstyle
import os
# 设置环境变量以使用特定的包装器
# 可以设置为pyqt、pyqt5、pyside或pyside2(尚未实现)
# 您不需要使用QtPy来设置此变量
os.environ['QT_API'] = 'pyqt5'
# 从QtPy导入而不是直接导入
# 注意QtPy始终使用PyQt5 API
from qtpy import QtWidgets
# 创建应用程序和主窗口
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QMainWindow()
# 设置样式表
# qdarkstyle 中的默认系统使用 qtpy 环境变量
app.setStyleSheet(qdarkstyle.load_stylesheet())
# 运行
window.show()
app.exec_()
如果直接使用 PyQt5,请参见完整示例
```python
import sys
import qdarkstyle
from PyQt5 import QtWidgets
# 创建应用程序和主窗口
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QMainWindow()
# 设置样式表
app.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
# 或使用新 API
app.setStyleSheet(qdarkstyle.load_stylesheet(qt_api='pyqt5'))
# 运行
window.show()
app.exec_()
```
以下是使用 PySide2 的示例
```python
import sys
import qdarkstyle
from PySide2 import QtWidgets
# 创建应用程序和主窗口
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QMainWindow()
# 设置样式表
app.setStyleSheet(qdarkstyle.load_stylesheet_pyside2())
# 或使用新 API
app.setStyleSheet(qdarkstyle.load_stylesheet(qt_api='pyside2'))
# 运行
window.show()
app.exec_()
```
如果使用 PyQtGraph,代码如下
```python
import sys
import qdarkstyle
import os
# 设置环境变量以使用特定的包装器
# 可以设置为 PyQt、PyQt5、PySide 或 PySide2(尚未实现)
os.environ['PYQTGRAPH_QT_LIB'] = 'PyQt5'
# 从 pyqtgraph 导入而不是直接导入
# 注意 PyQtGraph 始终使用 PyQt4 API
from pyqtgraph.Qt import QtGui
# 创建应用程序和主窗口
app = QtGui.QApplication(sys.argv)
window = QtGui.QMainWindow()
# 设置样式表
app.setStyleSheet(qdarkstyle.load_stylesheet(qt_api=os.environ['PYQTGRAPH_QT_LIB'])
# 运行
window.show()
app.exec_()
```
如果使用 Qt.py(与 qtpy 不同),您应该安装 qtpy,然后将两者设置为相同的绑定。
example/portfolio 的使用
--------------------------
包中包含一个示例。您只需要在系统上安装 PySide2 或 PyQt5。
```bash
# 深色主题示例
$ qdarkstyle.example --palette=dark
# 浅色主题示例
$ qdarkstyle.example --palette=light
# 不应用主题/样式表
$ qdarkstyle.example --palette=none
# 查看所有包含的选项
$ qdarkstyle.example --help
```
更新日志
---------
请参阅 `CHANGES <CHANGES.rst>`__ 文件。
许可证
-------
本项目基于 MIT 许可证。本项目中包含的图像基于 CC-BY 许可证。
更多信息请参阅 `LICENSE <LICENSE.rst>`__ 文件。
作者
-------
更多信息请参阅 `AUTHORS <AUTHORS.rst>`__ 文件。
贡献
------------
大多数小部件已经设置了样式。如果您发现某个小部件尚未设置样式,请在问题跟踪器上提出问题,或者更好的是,提交一个拉取请求。
如果您想贡献,请参阅 `CONTRIBUTING <CONTRIBUTING.rst>`__ 文件。