Променете цвета на текста за QML контролите

Използвам някои QML контроли като GroupBox и CheckBox, които имат текст, свързан с тях. Цветът на текста по подразбиране е черен. Имам обаче тези елементи на тъмен фон и бих предпочел да използвам бяло за цвета на текста. Тези елементи нямат свойство цвят, така че не съм сигурен какво да правя.

CheckBox {
    text: "Check Me"
}

person roundtheworld    schedule 27.08.2013    source източник


Отговори (3)


Трябва да използвате style< /a> свойството за предефиниране на Component за използване за етикета въз основа на CheckBoxStyle

import QtQuick 2.1
import QtQuick.Controls 1.0
import QtQuick.Controls.Styles 1.0

Rectangle {
    color: "black"
    CheckBox {
        style: CheckBoxStyle {
            label: Text {
                color: "white"
                text: "check Me"
            }
        }
    }
}

Когато използвате CheckBoxStyle може да се наложи да предефинирате целия компонент, а не само свойството label.

person koopajah    schedule 27.08.2013
comment
За съжаление, това изглежда не работи. CheckBoxStyle е подчертан, сякаш не може да го намери и аз предоставих импортирания (но се компилира добре). Единственото нещо, което се промени, е, че сега изобщо не мога да видя етикета на квадратчето за отметка. - person roundtheworld; 28.08.2013
comment
Току-що надстроих до Qt Creator 2.8.1 и въпреки че CheckBoxStyle вече не е подчертан, текстът все още не изглежда бял. Освен това забелязах, че загубих много други стилови елементи с горния код. Квадратчето за отметка вече има сив квадрат в него срещу действителна отметка при щракване. - person roundtheworld; 28.08.2013
comment
@user1595510 Актуализирах отговора си, като преместих свойството за текст в компонента на етикета. Вчера нямах Qt, за да го пробвам. В моята версия на Qt (5.1.0) той задава текста като бял - person koopajah; 28.08.2013
comment
Това свърши работа! Все пак остават две неща. Първо, като използвам тага за стил, изглежда, че презаписва всички стилови елементи, така че губя отметката и вместо това получавам сив квадрат, когато е избран. Второ, изглежда, че няма клас GroupBoxStyle... възможно ли е да се промени цвета на текста на GroupBox? - person roundtheworld; 28.08.2013
comment
@user1595510 Както казах, може да се наложи да предефинирате целия стил на вашия елемент, ако искате да промените цвета на текста и след това да създадете свой собствен компонент и за индикатора (отметката), както е показано в документацията. Що се отнася до GroupBox, за сега не намерих начин да променя цвета на текста. Когато използвате CheckBoxStyle, виждате правилния стил за вашата платформа и той се основава на квадрата вътре в индикатора - person koopajah; 28.08.2013
comment
Вижте документацията, където те последователно предефинират целия стил, копирайки съществуващия стил като основа за новия стил. Контроли 1.0: doc.qt.io/qt-5/qtquickcontrolsstyles-index.html. Контроли 2.0: doc.qt.io/qt-5/qtquickcontrols2-customize.html. - person Edward LeBlanc; 16.12.2020

Имах същия проблем с GroupBox, така че исках да публикувам отговор за бъдещи справки. Проблемът може лесно да бъде отстранен чрез HTML форматиране. Например, за да промените цвета:

GroupBox{ 
    title: "<font color=\"white\">my title</font>"
}

Размерът и другите параметри за форматиране могат да се променят по същия начин.

person luffy    schedule 19.01.2015
comment
благодаря, че показахте възможността за използване на html в qml - person Ahmed Fwela; 08.09.2018

Опитахте ли да го зададете като цял поделемент на отметката?

CheckBox {

    Text {
        text: "Check Me"
        color: "red"
    }
}
person Calum Murray    schedule 27.08.2013