Цвет фона QToolBar применяется только к действиям

Я пытаюсь установить цвет фона QToolBar в конструкторе Qt следующим образом в таблице стилей background : rgb(30, 30, 30), По какой-то причине цвет фона применяется только к фону действия, как видно на изображении. Как я могу изменить цвет всей панели инструментов?

введите описание изображения здесь

Редактировать.

Даже если я изменю цвет фона всего моего окна, область панели инструментов не будет затронута:

введите описание изображения здесь

Это пустое приложение виджетов Qt по умолчанию, где я добавил только QToolBar и один QAction и в таблицу стилей моего QMainWindow

background : red;
QToolBar { background : red }
QToolButton {background : red}

Это ожидаемое поведение или ошибка в Qt с Linux?

редактировать.

Я пробовал этот код на Xubuntu 14.04 с Qt 4.8 и Qt 5.4.2. Это похоже на ошибку в Qt. Смотрите мой собственный ответ ниже.

2

Решение

Хорошо, я покопался и нашел это https://forum.qt.io/topic/23800/solved-change-background-color-of-qtoolbar-doesn-t-work-in-linux . Видимо, это специфическая проблема в некоторых дистрибутивах Linux. Добавление border: none после background : rgb(30, 30, 30) исправил проблему. Не знаю, почему мой вопрос был отклонен, хотя.

3

Другие решения

Вы можете использовать QT StyleSheet как показано ниже:

ui->mainToolBar->setStyleSheet("QToolButton:!hover {background-color:lightgray} QToolBar {background: rgb(30, 30, 30)}");

Первый параметр цвета я устанавливаю для фона кнопки панели инструментов, а второй — для настройки цвета фона панели инструментов.

Если вы хотите установить только цвет фона, используйте StyleSheet как показано ниже:

 ui->mainToolBar->setStyleSheet("QToolBar {background: rgb(30, 30, 30)}");

Пожалуйста, проверьте изображение ниже для вашей справки:

введите описание изображения здесь

Я надеюсь, что вы хотите панель инструментов в соответствии с изображением выше.

0

Я использую Ubuntu и код user256 .. не работает. Но я попробовал код Samurai Jack, и он работает. Вот где ваш код не работает:! Hover недействителен. Чтобы получить код, который вы хотите, сделайте это:

ui->mainToolBar->setStyleSheet("QToolButton:hover {background-color: darkgray; }"" QToolBar {background: rgb(30, 30, 30) }");

куда :hover это директива CSS, которая, как я предполагаю, вы пытаетесь сделать. Я тестирую это на Ubuntu 15.04, и это работает.

0

Я знаю, что это уже пока, но я испытал проблему с фоном ToolBar и обнаружил, что это можно изменить с помощью QPalette. Главное, чтобы цветовая роль QPalette была установлена ​​как QPlatte :: Button.

-1
По вопросам рекламы [email protected]