qt-material


Nameqt-material JSON
Version 2.14 PyPI version JSON
download
home_page
SummaryMaterial inspired stylesheet for PySide2, PySide6, PyQt5 and PyQt6.
upload_time2023-02-07 00:40:19
maintainerYeison Cardona
docs_urlNone
authorYeison Cardona
requires_python>=3.7
licenseBSD-2-Clause
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Qt-Material

This is another stylesheet for **PySide6**, **PySide2**, **PyQt5** and **PyQt6**, which looks like Material Design (close enough).

![GitHub top language](https://img.shields.io/github/languages/top/un-gcpds/qt-material)
![PyPI - License](https://img.shields.io/pypi/l/qt-material)
![PyPI](https://img.shields.io/pypi/v/qt-material)
![PyPI - Status](https://img.shields.io/pypi/status/qt-material)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/qt-material)
![GitHub last commit](https://img.shields.io/github/last-commit/un-gcpds/qt-material)
![CodeFactor Grade](https://img.shields.io/codefactor/grade/github/UN-GCPDS/qt-material)
[![Documentation Status](https://readthedocs.org/projects/qt-material/badge/?version=latest)](https://qt-material.readthedocs.io/en/latest/?badge=latest)

There is some custom dark themes:
![dark](https://github.com/UN-GCPDS/qt-material/raw/master/docs/source/notebooks/_images/dark.gif)
And light:
![light](https://github.com/UN-GCPDS/qt-material/raw/master/docs/source/notebooks/_images/light.gif)

## Navigation

  * [Install](#install)
  * [Usage](#usage)
  * [Themes](#themes)
  * [Custom colors](#custom-colors)
  * [Usage](#usage)
  * [Light themes](#light-themes)
  * [Environ variables](#environ-variables)
  * [Alternative QPushButtons and custom fonts](#alternative-qpushbuttons-and-custom-fonts)
  * [Custom stylesheets](#custom-stylesheets)
  * [Run examples](#run-examples)
  * [New themes](#new-themes)
  * [Change theme in runtime](#change-theme-in-runtime)
  * [Export theme](#export-theme)
  * [Density scale](#density-scale)
  * [Troubleshoots](#troubleshoots)

## Install


```python
pip install qt-material
```

## Usage


```python
import sys
from PySide6 import QtWidgets
# from PySide2 import QtWidgets
# from PyQt5 import QtWidgets
from qt_material import apply_stylesheet

# create the application and the main window
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QMainWindow()

# setup stylesheet
apply_stylesheet(app, theme='dark_teal.xml')

# run
window.show()
app.exec_()
```

## Themes


```python
from qt_material import list_themes

list_themes()
```

    WARNING:root:qt_material must be imported after PySide or PyQt!





    ['dark_amber.xml',
     'dark_blue.xml',
     'dark_cyan.xml',
     'dark_lightgreen.xml',
     'dark_pink.xml',
     'dark_purple.xml',
     'dark_red.xml',
     'dark_teal.xml',
     'dark_yellow.xml',
     'light_amber.xml',
     'light_blue.xml',
     'light_cyan.xml',
     'light_cyan_500.xml',
     'light_lightgreen.xml',
     'light_pink.xml',
     'light_purple.xml',
     'light_red.xml',
     'light_teal.xml',
     'light_yellow.xml']



## Custom colors

[Color Tool](https://material.io/resources/color/) is the best way to generate new themes, just choose colors and export as `Android XML`, the theme file must look like:


```python
<!--?xml version="1.0" encoding="UTF-8"?-->
<resources>
<color name="primaryColor">#00e5ff</color>
<color name="primaryLightColor">#6effff</color>
<color name="secondaryColor">#f5f5f5</color>
<color name="secondaryLightColor">#ffffff</color>
<color name="secondaryDarkColor">#e6e6e6</color>
<color name="primaryTextColor">#000000</color>
<color name="secondaryTextColor">#000000</color>
</resources>
```

Save it as `my_theme.xml` or similar and apply the style sheet from Python.


```python
apply_stylesheet(app, theme='dark_teal.xml')
```

## Light themes
Light themes will need to add `invert_secondary` argument as `True`.


```python
apply_stylesheet(app, theme='light_red.xml', invert_secondary=True)
```

## Environ variables

There is a environ variables related to the current theme used, these variables are for **consult purpose only**.


| Environ variable               | Description                              | Example        |
|--------------------------------|------------------------------------------|----------------|
| QTMATERIAL_PRIMARYCOLOR        | Primary color                            | #2979ff        |
| QTMATERIAL_PRIMARYLIGHTCOLOR   | A bright version of the primary color    | #75a7ff        |
| QTMATERIAL_SECONDARYCOLOR      | Secondary color                          | #f5f5f5        |
| QTMATERIAL_SECONDARYLIGHTCOLOR | A bright version of the secondary color  | #ffffff        |
| QTMATERIAL_SECONDARYDARKCOLOR  | A dark version of the primary color      | #e6e6e6        |
| QTMATERIAL_PRIMARYTEXTCOLOR    | Color for text over primary background   | #000000        |
| QTMATERIAL_SECONDARYTEXTCOLOR  | Color for text over secondary background | #000000        |
| QTMATERIAL_THEME               | Name of theme used                       | light_blue.xml |

## Alternative QPushButtons and custom fonts

There is an `extra` argument for accent colors and custom fonts. 


```python
extra = {

    # Button colors
    'danger': '#dc3545',
    'warning': '#ffc107',
    'success': '#17a2b8',

    # Font
    'font_family': 'Roboto',
}

apply_stylesheet(app, 'light_cyan.xml', invert_secondary=True, extra=extra)
```

The accent colors are applied to `QPushButton` with the corresponding `class`  property:


```python
pushButton_danger.setProperty('class', 'danger')
pushButton_warning.setProperty('class', 'warning')
pushButton_success.setProperty('class', 'success')
```

![extra](https://github.com/UN-GCPDS/qt-material/raw/master/docs/source/notebooks/_images/extra.png)

## Custom stylesheets

Custom changes can be performed by overwriting the stylesheets, for example:


```python
QPushButton {{
  color: {QTMATERIAL_SECONDARYCOLOR};
  text-transform: none;
  background-color: {QTMATERIAL_PRIMARYCOLOR};
}}

.big_button {{
  height: 64px;
}}
```

Then, the current stylesheet can be extended just with:


```python
apply_stylesheet(app, theme='light_blue.xml', css_file='custom.css')
```

The stylesheet can also be changed on runtime by:


```python
stylesheet = app.styleSheet()
with open('custom.css') as file:
    app.setStyleSheet(stylesheet + file.read().format(**os.environ))
```

And the class style can be applied with the `setProperty` method:


```python
self.main.pushButton.setProperty('class', 'big_button')
```

![extra](https://github.com/UN-GCPDS/qt-material/raw/master/docs/source/notebooks/_images/custom.png)

## Run examples
A window with almost all widgets (see the previous screenshots) are available to test all themes and **create new ones**.


```python
git clone https://github.com/UN-GCPDS/qt-material.git
cd qt-material
python setup.py install
cd examples/full_features
python main.py --pyside6
```

![theme](https://github.com/UN-GCPDS/qt-material/raw/master/docs/source/notebooks/_images/theme.gif)

## New themes

Do you have a custom theme? it looks good? create a [pull request](https://github.com/UN-GCPDS/qt-material/pulls) in [themes folder](https://github.com/UN-GCPDS/qt-material/tree/master/qt_material/themes>)  and share it with all users.


## Change theme in runtime

There is a `qt_material.QtStyleTools` class that must be inherited along to `QMainWindow` for change themes in runtime using the `apply_stylesheet()` method.


```python
class RuntimeStylesheets(QMainWindow, QtStyleTools):
    
    def __init__(self):
        super().__init__()
        self.main = QUiLoader().load('main_window.ui', self)
        
        self.apply_stylesheet(self.main, 'dark_teal.xml')
        # self.apply_stylesheet(self.main, 'light_red.xml')
        # self.apply_stylesheet(self.main, 'light_blue.xml')
```

![run](https://github.com/UN-GCPDS/qt-material/raw/master/docs/source/notebooks/_images/runtime.gif)

### Integrate stylesheets in a menu

A custom _stylesheets menu_ can be added to a project for switching across all default available themes.


```python
class RuntimeStylesheets(QMainWindow, QtStyleTools):
    
    def __init__(self):
        super().__init__()
        self.main = QUiLoader().load('main_window.ui', self)
        
        self.add_menu_theme(self.main, self.main.menuStyles)
```

![menu](https://github.com/UN-GCPDS/qt-material/raw/master/docs/source/notebooks/_images/runtime_menu.gif)

## Create new themes

A simple interface is available to modify a theme in runtime, this feature can be used to create a new theme, the theme file is created in the main directory as `my_theme.xml`


```python
class RuntimeStylesheets(QMainWindow, QtStyleTools):
    
    def __init__(self):
        super().__init__()
        self.main = QUiLoader().load('main_window.ui', self)
        
        self.show_dock_theme(self.main)
```

![dock](https://github.com/UN-GCPDS/qt-material/raw/master/docs/source/notebooks/_images/runtime_dock.gif)

A full set of examples are available in the [exmaples directory](https://github.com/UN-GCPDS/qt-material/blob/master/examples/runtime/)

## Export theme

This feature able to use ```qt-material``` themes into ```Qt``` implementations using only local files.


```python
from qt_material import export_theme

extra = {

    # Button colors
    'danger': '#dc3545',
    'warning': '#ffc107',
    'success': '#17a2b8',

    # Font
    'font_family': 'monoespace',
    'font_size': '13px',
    'line_height': '13px',

    # Density Scale
    'density_scale': '0',

    # environ
    'pyside6': True,
    'linux': True,

}

export_theme(theme='dark_teal.xml', 
             qss='dark_teal.qss', 
             rcc='resources.rcc',
             output='theme', 
             prefix='icon:/', 
             invert_secondary=False, 
             extra=extra,
            )
```

This script will generate both ```dark_teal.qss``` and ```resources.rcc``` and a folder with all theme icons called ```theme```.

The files generated can be integrated into a ```PySide6``` application just with:


```python
import sys

from PySide6 import QtWidgets
from PySide6.QtCore import QDir
from __feature__ import snake_case, true_property

# Create application
app = QtWidgets.QApplication(sys.argv)

# Load styles
with open('dark_teal.qss', 'r') as file:
    app.style_sheet = file.read()

# Load icons
QDir.add_search_path('icon', 'theme')

# App
window = QtWidgets.QMainWindow()
checkbox = QtWidgets.QCheckBox(window)
checkbox.text = 'CheckBox'
window.show()
app.exec()
```

This files can also be used into non ```Python``` environs like ```C++```.

## Density scale

The ``extra`` arguments also include an option to set the **density scale**, by default is ```0```.


```python
extra = {
    
    # Density Scale
    'density_scale': '-2',
}

apply_stylesheet(app, 'default', invert_secondary=False, extra=extra)
```

![dock](https://github.com/UN-GCPDS/qt-material/raw/master/docs/source/notebooks/_images/density/density.gif)

## Troubleshoots

### QMenu

`QMenu` has multiple rendering for each Qt backend, and for each operating system. Even can be related with the style, like [fusion](https://doc.qt.io/qt-5/qtquickcontrols2-fusion.html). Then, the `extra` argument also supports`QMenu` parameters to configure this widgest for specific combinations. This options are not affected by **density scale**.


```python
extra['QMenu'] = {
    'height': 50,
    'padding': '50px 50px 50px 50px',  # top, right, bottom, left
}
```

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "qt-material",
    "maintainer": "Yeison Cardona",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "yencardonaal@unal.edu.co",
    "keywords": "",
    "author": "Yeison Cardona",
    "author_email": "yencardonaal@unal.edu.co",
    "download_url": "https://files.pythonhosted.org/packages/bd/62/da101036c3cd7a160a15614a1ab5b42547c1c3e689d8f08f42bb0fb76452/qt-material-2.14.tar.gz",
    "platform": null,
    "description": "# Qt-Material\n\nThis is another stylesheet for **PySide6**, **PySide2**, **PyQt5** and **PyQt6**, which looks like Material Design (close enough).\n\n![GitHub top language](https://img.shields.io/github/languages/top/un-gcpds/qt-material)\n![PyPI - License](https://img.shields.io/pypi/l/qt-material)\n![PyPI](https://img.shields.io/pypi/v/qt-material)\n![PyPI - Status](https://img.shields.io/pypi/status/qt-material)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/qt-material)\n![GitHub last commit](https://img.shields.io/github/last-commit/un-gcpds/qt-material)\n![CodeFactor Grade](https://img.shields.io/codefactor/grade/github/UN-GCPDS/qt-material)\n[![Documentation Status](https://readthedocs.org/projects/qt-material/badge/?version=latest)](https://qt-material.readthedocs.io/en/latest/?badge=latest)\n\nThere is some custom dark themes:\n![dark](https://github.com/UN-GCPDS/qt-material/raw/master/docs/source/notebooks/_images/dark.gif)\nAnd light:\n![light](https://github.com/UN-GCPDS/qt-material/raw/master/docs/source/notebooks/_images/light.gif)\n\n## Navigation\n\n  * [Install](#install)\n  * [Usage](#usage)\n  * [Themes](#themes)\n  * [Custom colors](#custom-colors)\n  * [Usage](#usage)\n  * [Light themes](#light-themes)\n  * [Environ variables](#environ-variables)\n  * [Alternative QPushButtons and custom fonts](#alternative-qpushbuttons-and-custom-fonts)\n  * [Custom stylesheets](#custom-stylesheets)\n  * [Run examples](#run-examples)\n  * [New themes](#new-themes)\n  * [Change theme in runtime](#change-theme-in-runtime)\n  * [Export theme](#export-theme)\n  * [Density scale](#density-scale)\n  * [Troubleshoots](#troubleshoots)\n\n## Install\n\n\n```python\npip install qt-material\n```\n\n## Usage\n\n\n```python\nimport sys\nfrom PySide6 import QtWidgets\n# from PySide2 import QtWidgets\n# from PyQt5 import QtWidgets\nfrom qt_material import apply_stylesheet\n\n# create the application and the main window\napp = QtWidgets.QApplication(sys.argv)\nwindow = QtWidgets.QMainWindow()\n\n# setup stylesheet\napply_stylesheet(app, theme='dark_teal.xml')\n\n# run\nwindow.show()\napp.exec_()\n```\n\n## Themes\n\n\n```python\nfrom qt_material import list_themes\n\nlist_themes()\n```\n\n    WARNING:root:qt_material must be imported after PySide or PyQt!\n\n\n\n\n\n    ['dark_amber.xml',\n     'dark_blue.xml',\n     'dark_cyan.xml',\n     'dark_lightgreen.xml',\n     'dark_pink.xml',\n     'dark_purple.xml',\n     'dark_red.xml',\n     'dark_teal.xml',\n     'dark_yellow.xml',\n     'light_amber.xml',\n     'light_blue.xml',\n     'light_cyan.xml',\n     'light_cyan_500.xml',\n     'light_lightgreen.xml',\n     'light_pink.xml',\n     'light_purple.xml',\n     'light_red.xml',\n     'light_teal.xml',\n     'light_yellow.xml']\n\n\n\n## Custom colors\n\n[Color Tool](https://material.io/resources/color/) is the best way to generate new themes, just choose colors and export as `Android XML`, the theme file must look like:\n\n\n```python\n<!--?xml version=\"1.0\" encoding=\"UTF-8\"?-->\n<resources>\n<color name=\"primaryColor\">#00e5ff</color>\n<color name=\"primaryLightColor\">#6effff</color>\n<color name=\"secondaryColor\">#f5f5f5</color>\n<color name=\"secondaryLightColor\">#ffffff</color>\n<color name=\"secondaryDarkColor\">#e6e6e6</color>\n<color name=\"primaryTextColor\">#000000</color>\n<color name=\"secondaryTextColor\">#000000</color>\n</resources>\n```\n\nSave it as `my_theme.xml` or similar and apply the style sheet from Python.\n\n\n```python\napply_stylesheet(app, theme='dark_teal.xml')\n```\n\n## Light themes\nLight themes will need to add `invert_secondary` argument as `True`.\n\n\n```python\napply_stylesheet(app, theme='light_red.xml', invert_secondary=True)\n```\n\n## Environ variables\n\nThere is a environ variables related to the current theme used, these variables are for **consult purpose only**.\n\n\n| Environ variable               | Description                              | Example        |\n|--------------------------------|------------------------------------------|----------------|\n| QTMATERIAL_PRIMARYCOLOR        | Primary color                            | #2979ff        |\n| QTMATERIAL_PRIMARYLIGHTCOLOR   | A bright version of the primary color    | #75a7ff        |\n| QTMATERIAL_SECONDARYCOLOR      | Secondary color                          | #f5f5f5        |\n| QTMATERIAL_SECONDARYLIGHTCOLOR | A bright version of the secondary color  | #ffffff        |\n| QTMATERIAL_SECONDARYDARKCOLOR  | A dark version of the primary color      | #e6e6e6        |\n| QTMATERIAL_PRIMARYTEXTCOLOR    | Color for text over primary background   | #000000        |\n| QTMATERIAL_SECONDARYTEXTCOLOR  | Color for text over secondary background | #000000        |\n| QTMATERIAL_THEME               | Name of theme used                       | light_blue.xml |\n\n## Alternative QPushButtons and custom fonts\n\nThere is an `extra` argument for accent colors and custom fonts. \n\n\n```python\nextra = {\n\n    # Button colors\n    'danger': '#dc3545',\n    'warning': '#ffc107',\n    'success': '#17a2b8',\n\n    # Font\n    'font_family': 'Roboto',\n}\n\napply_stylesheet(app, 'light_cyan.xml', invert_secondary=True, extra=extra)\n```\n\nThe accent colors are applied to `QPushButton` with the corresponding `class`  property:\n\n\n```python\npushButton_danger.setProperty('class', 'danger')\npushButton_warning.setProperty('class', 'warning')\npushButton_success.setProperty('class', 'success')\n```\n\n![extra](https://github.com/UN-GCPDS/qt-material/raw/master/docs/source/notebooks/_images/extra.png)\n\n## Custom stylesheets\n\nCustom changes can be performed by overwriting the stylesheets, for example:\n\n\n```python\nQPushButton {{\n  color: {QTMATERIAL_SECONDARYCOLOR};\n  text-transform: none;\n  background-color: {QTMATERIAL_PRIMARYCOLOR};\n}}\n\n.big_button {{\n  height: 64px;\n}}\n```\n\nThen, the current stylesheet can be extended just with:\n\n\n```python\napply_stylesheet(app, theme='light_blue.xml', css_file='custom.css')\n```\n\nThe stylesheet can also be changed on runtime by:\n\n\n```python\nstylesheet = app.styleSheet()\nwith open('custom.css') as file:\n    app.setStyleSheet(stylesheet + file.read().format(**os.environ))\n```\n\nAnd the class style can be applied with the `setProperty` method:\n\n\n```python\nself.main.pushButton.setProperty('class', 'big_button')\n```\n\n![extra](https://github.com/UN-GCPDS/qt-material/raw/master/docs/source/notebooks/_images/custom.png)\n\n## Run examples\nA window with almost all widgets (see the previous screenshots) are available to test all themes and **create new ones**.\n\n\n```python\ngit clone https://github.com/UN-GCPDS/qt-material.git\ncd qt-material\npython setup.py install\ncd examples/full_features\npython main.py --pyside6\n```\n\n![theme](https://github.com/UN-GCPDS/qt-material/raw/master/docs/source/notebooks/_images/theme.gif)\n\n## New themes\n\nDo you have a custom theme? it looks good? create a [pull request](https://github.com/UN-GCPDS/qt-material/pulls) in [themes folder](https://github.com/UN-GCPDS/qt-material/tree/master/qt_material/themes>)  and share it with all users.\n\n\n## Change theme in runtime\n\nThere is a `qt_material.QtStyleTools` class that must be inherited along to `QMainWindow` for change themes in runtime using the `apply_stylesheet()` method.\n\n\n```python\nclass RuntimeStylesheets(QMainWindow, QtStyleTools):\n    \n    def __init__(self):\n        super().__init__()\n        self.main = QUiLoader().load('main_window.ui', self)\n        \n        self.apply_stylesheet(self.main, 'dark_teal.xml')\n        # self.apply_stylesheet(self.main, 'light_red.xml')\n        # self.apply_stylesheet(self.main, 'light_blue.xml')\n```\n\n![run](https://github.com/UN-GCPDS/qt-material/raw/master/docs/source/notebooks/_images/runtime.gif)\n\n### Integrate stylesheets in a menu\n\nA custom _stylesheets menu_ can be added to a project for switching across all default available themes.\n\n\n```python\nclass RuntimeStylesheets(QMainWindow, QtStyleTools):\n    \n    def __init__(self):\n        super().__init__()\n        self.main = QUiLoader().load('main_window.ui', self)\n        \n        self.add_menu_theme(self.main, self.main.menuStyles)\n```\n\n![menu](https://github.com/UN-GCPDS/qt-material/raw/master/docs/source/notebooks/_images/runtime_menu.gif)\n\n## Create new themes\n\nA simple interface is available to modify a theme in runtime, this feature can be used to create a new theme, the theme file is created in the main directory as `my_theme.xml`\n\n\n```python\nclass RuntimeStylesheets(QMainWindow, QtStyleTools):\n    \n    def __init__(self):\n        super().__init__()\n        self.main = QUiLoader().load('main_window.ui', self)\n        \n        self.show_dock_theme(self.main)\n```\n\n![dock](https://github.com/UN-GCPDS/qt-material/raw/master/docs/source/notebooks/_images/runtime_dock.gif)\n\nA full set of examples are available in the [exmaples directory](https://github.com/UN-GCPDS/qt-material/blob/master/examples/runtime/)\n\n## Export theme\n\nThis feature able to use ```qt-material``` themes into ```Qt``` implementations using only local files.\n\n\n```python\nfrom qt_material import export_theme\n\nextra = {\n\n    # Button colors\n    'danger': '#dc3545',\n    'warning': '#ffc107',\n    'success': '#17a2b8',\n\n    # Font\n    'font_family': 'monoespace',\n    'font_size': '13px',\n    'line_height': '13px',\n\n    # Density Scale\n    'density_scale': '0',\n\n    # environ\n    'pyside6': True,\n    'linux': True,\n\n}\n\nexport_theme(theme='dark_teal.xml', \n             qss='dark_teal.qss', \n             rcc='resources.rcc',\n             output='theme', \n             prefix='icon:/', \n             invert_secondary=False, \n             extra=extra,\n            )\n```\n\nThis script will generate both ```dark_teal.qss``` and ```resources.rcc``` and a folder with all theme icons called ```theme```.\n\nThe files generated can be integrated into a ```PySide6``` application just with:\n\n\n```python\nimport sys\n\nfrom PySide6 import QtWidgets\nfrom PySide6.QtCore import QDir\nfrom __feature__ import snake_case, true_property\n\n# Create application\napp = QtWidgets.QApplication(sys.argv)\n\n# Load styles\nwith open('dark_teal.qss', 'r') as file:\n    app.style_sheet = file.read()\n\n# Load icons\nQDir.add_search_path('icon', 'theme')\n\n# App\nwindow = QtWidgets.QMainWindow()\ncheckbox = QtWidgets.QCheckBox(window)\ncheckbox.text = 'CheckBox'\nwindow.show()\napp.exec()\n```\n\nThis files can also be used into non ```Python``` environs like ```C++```.\n\n## Density scale\n\nThe ``extra`` arguments also include an option to set the **density scale**, by default is ```0```.\n\n\n```python\nextra = {\n    \n    # Density Scale\n    'density_scale': '-2',\n}\n\napply_stylesheet(app, 'default', invert_secondary=False, extra=extra)\n```\n\n![dock](https://github.com/UN-GCPDS/qt-material/raw/master/docs/source/notebooks/_images/density/density.gif)\n\n## Troubleshoots\n\n### QMenu\n\n`QMenu` has multiple rendering for each Qt backend, and for each operating system. Even can be related with the style, like [fusion](https://doc.qt.io/qt-5/qtquickcontrols2-fusion.html). Then, the `extra` argument also supports`QMenu` parameters to configure this widgest for specific combinations. This options are not affected by **density scale**.\n\n\n```python\nextra['QMenu'] = {\n    'height': 50,\n    'padding': '50px 50px 50px 50px',  # top, right, bottom, left\n}\n```\n",
    "bugtrack_url": null,
    "license": "BSD-2-Clause",
    "summary": "Material inspired stylesheet for PySide2, PySide6, PyQt5 and PyQt6.",
    "version": "2.14",
    "project_urls": {
        "Download": "https://github.com/UN-GCPDS/qt-material"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "eeb14bdeb054c0a7630a5813ade00db1d75730557c427653b15911e92455738b",
                "md5": "c50b56a245a415c425e94da49a304f91",
                "sha256": "ceddd9b3aca167e5d620644ce350c3df4c0220c5df457ab6059f634d7ac747e3"
            },
            "downloads": -1,
            "filename": "qt_material-2.14-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c50b56a245a415c425e94da49a304f91",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 1687961,
            "upload_time": "2023-02-07T00:40:14",
            "upload_time_iso_8601": "2023-02-07T00:40:14.708083Z",
            "url": "https://files.pythonhosted.org/packages/ee/b1/4bdeb054c0a7630a5813ade00db1d75730557c427653b15911e92455738b/qt_material-2.14-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bd62da101036c3cd7a160a15614a1ab5b42547c1c3e689d8f08f42bb0fb76452",
                "md5": "9b367573e79b305fd2f1b0e96c5730b9",
                "sha256": "b5dbb5ade97217cf7ae336bb7c047c90beb39dc7f2048a498c916ad5f2f7ae23"
            },
            "downloads": -1,
            "filename": "qt-material-2.14.tar.gz",
            "has_sig": false,
            "md5_digest": "9b367573e79b305fd2f1b0e96c5730b9",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 1668687,
            "upload_time": "2023-02-07T00:40:19",
            "upload_time_iso_8601": "2023-02-07T00:40:19.272543Z",
            "url": "https://files.pythonhosted.org/packages/bd/62/da101036c3cd7a160a15614a1ab5b42547c1c3e689d8f08f42bb0fb76452/qt-material-2.14.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-02-07 00:40:19",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "UN-GCPDS",
    "github_project": "qt-material",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "qt-material"
}
        
Elapsed time: 0.38743s