Проблемы с пониманием, как программно установить таблицу стилей для применения к нескольким (или даже ко всем) виджетам в Qt Creator 4.1 (Qt 5.7) с C ++.
Например, скажем, у меня есть 3 виджета индикатора выполнения; Я явно установил каждый с той же таблицей стилей с CSS вот так:
ui->c1->setStyleSheet("QProgressBar {""background-color: #74c8ff;""color: #0a9dff;""border-style: outset;""border-width: 2px;""border-color: #74c8ff;""border-radius: 7px;""text-align: left; }"
"QProgressBar::chunk {""background-color: #010327; }");
ui->c2->setStyleSheet("QProgressBar {""background-color: #74c8ff;""color: #0a9dff;""border-style: outset;""border-width: 2px;""border-color: #74c8ff;""border-radius: 7px;""text-align: left; }"
"QProgressBar::chunk {""background-color: #010327; }");
ui->c3->setStyleSheet("QProgressBar {""background-color: #74c8ff;""color: #0a9dff;""border-style: outset;""border-width: 2px;""border-color: #74c8ff;""border-radius: 7px;""text-align: left; }"
"QProgressBar::chunk {""background-color: #010327; }");
Я хотел бы использовать Qt Stylesheets создать таблицу стилей для моих виджетов и избежать всего этого дублирования кода.
После прочтения документов синтаксис будет выглядеть следующим образом:
QProgressBar
{
background: #74c8ff;
color: #0a9dff;
border-style: outset;
border-width: 2px;
border-color: #74c8ff;
border-radius: 7px;
text-align: left;
}
QProgressBar::chunk
{
background-color: #010327;
}
но, видимо, вы не можете скопировать имена параметров, используемые в setStylesheet
с помощью css напрямую к синтаксису, подобному приведенному выше.
Я тоже пробовал что то подобное
QProgressBar.setStyleSheet("QProgressBar {""background-color: #74c8ff;""color: #0a9dff;""border-style: outset;""border-width: 2px;""border-color: #74c8ff;""border-radius: 7px;""text-align: left; }"
"QProgressBar::chunk {""background-color: #010327; }");
Ничего из вышеперечисленного не сработало (необъявленные идентификаторы и синтаксические ошибки).
Может ли кто-нибудь привести пример того, как можно добиться определения одной таблицы стилей с указанными выше параметрами, которые будут применяться ко всем виджетам? Если бы вы могли указать на ресурс (я не смог ничего найти!), Который объясняет доступные параметры для достижения моей цели, это было бы так же хорошо).
Наконец, если такая таблица стилей создана для всех индикаторов выполнения, как я могу исключить один индикатор (или любой другой виджет в этом отношении) от наличия этой таблицы стилей и вместо нее другой?
использование qApp->setStyleSheet
вместо QProgressBar.setStyleSheet
установить таблицу стилей для всех виджетов в вашем приложении. Больше примеров здесь: http://doc.qt.io/qt-5/stylesheet-examples.html
Других решений пока нет …