Ir para o conteúdo

Python e QT 6: Formas de configurar o tema Universal do QML

PySide6 QML tema Universal no Microsoft Windows

Existem diversas formas de realizar a configurações do tema Universal, esse texto descreve algumas dessas formas.

Propriedades para o arquivo QML

Parâmetros:

  • Universal.accent.
  • Universal.background.
  • Universal.foreground.
  • Universal.theme.

Exemplo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Controls.Universal 2.12

ApplicationWindow {
    visible: true

    Universal.theme: Universal.Dark
    Universal.accent: Universal.Violet

    Column {
        anchors.centerIn: parent

        RadioButton { text: qsTr("Pequeno") }
        RadioButton { text: qsTr("Médio");  checked: true }
        RadioButton { text: qsTr("Grande") }
    }
}

nota

A configuração de estilo pode ser global ou definida no componente que se deseja personalizar.

Propriedades para o arquivo qtquickcontrols2.conf

Nota

Para que o arquivo qtquickcontrols2.conf funcione o mesmo deve estar listado no arquivo resources.qrc e deve ser gerado o arquivo resources_rc.py.

Parâmetros:

  • Theme.
  • Accent.
  • Foreground.
  • Background.

Exemplo:

1
2
3
[Universal]
Theme=Dark
Accent=Violet

Propriedades para ambiente virtual

Parâmetros:

  • QT_QUICK_CONTROLS_UNIVERSAL_THEME.
  • QT_QUICK_CONTROLS_UNIVERSAL_ACCENT.
  • QT_QUICK_CONTROLS_UNIVERSAL_FOREGROUND.
  • QT_QUICK_CONTROLS_UNIVERSAL_BACKGROUND.

Exemplo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import sys
import os

from PySide6.QtQuickControls2 import QQuickStyle

# 3 forma de definir o estilo do aplicativo (escolha apenas 1).
sys.argv += ['--style', 'Universal']
# os.environ['QT_QUICK_CONTROLS_STYLE'] = 'Universal'
# QQuickStyle.setStyle('Universal')

# Outras configurações de estilo.
# Não utilizar THEME E BACKGROUND juntos (fica estranho).
os.environ['QT_QUICK_CONTROLS_UNIVERSAL_THEME'] = 'Dark'
# os.environ['QT_QUICK_CONTROLS_UNIVERSAL_ACCENT'] = 'Orange'
# os.environ['QT_QUICK_CONTROLS_UNIVERSAL_FOREGROUND'] = 'Magenta'
# os.environ['QT_QUICK_CONTROLS_UNIVERSAL_BACKGROUND'] = 'Steel'

Python

Definindo o estilo

1
2
3
4
# 3 forma de definir o estilo do aplicativo (escolha apenas 1).
sys.argv += ['--style', 'Universal']
os.environ['QT_QUICK_CONTROLS_STYLE'] = 'Universal'
QQuickStyle.setStyle('Universal')

Variáveis de ambiente

1
2
3
4
5
# Não utilizar THEME E BACKGROUND juntos (fica estranho).
os.environ['QT_QUICK_CONTROLS_UNIVERSAL_THEME'] = 'Dark'
os.environ['QT_QUICK_CONTROLS_UNIVERSAL_ACCENT'] = 'Orange'
os.environ['QT_QUICK_CONTROLS_UNIVERSAL_FOREGROUND'] = 'Magenta'
# os.environ['QT_QUICK_CONTROLS_UNIVERSAL_BACKGROUND'] = 'Steel'

Cores

Universal

O tema Universal fornece algumas cores pré definidas.

  • Universal.Lime: #A4C400.
  • Universal.Green: #60A917.
  • Universal.Emerald: #008A00.
  • Universal.Teal: #00ABA9.
  • Universal.Cyan: #1BA1E2.
  • Universal.Cobalt: #3E65FF (Cor padrão).
  • Universal.Indigo: #6A00FF.
  • Universal.Violet: #AA00FF.
  • Universal.Pink: #F472D0.
  • Universal.Magenta: #D80073.
  • Universal.Crimson: #A20025.
  • Universal.Red: #E51400.
  • Universal.Orange: #FA6800.
  • Universal.Amber: #F0A30A.
  • Universal.Yellow: #E3C800.
  • Universal.Brown: #825A2C.
  • Universal.Olive: #6D8764.
  • Universal.Steel: #647687.
  • Universal.Mauve: #76608A.
  • Universal.Taupe: #87794E.

Comentários