Russian Qt Forum
Сентябрь 30, 2024, 12:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Почему setPalette для всех виджетов  (Прочитано 2985 раз)
zubr3
Гость
« : Март 13, 2006, 11:33 »

В диалоговом окне в конструкторе задаю картинку для фона.
if(pixmap.load(":/background.png")==true)
{
   brushStone.setTexture(pixmap);
   paletteStone.setBrush(QPalette::Background,brushStone);
   setPalette(paletteStone);
}
Однако этот фон почему-то применяется и для tabWidget'а на этом диалоге. На кнопоки и comboBox'ы эта палитра не действует. Подскажите в чем причина этого поведения?
Записан
Asaphus_Expansus
Гость
« Ответ #1 : Март 13, 2006, 14:50 »

Какая версия Qt?
Записан
zubr3
Гость
« Ответ #2 : Март 13, 2006, 15:42 »

Версия Qt 4.1.0 Open Source Edition (Windows/MinGW).

добавлено спустя 41 минуту:

 Выяснил, что если установить и добавитьследующий код:
paletteDefault=QApplication::palette();
tabWidget_relations->setPalette(paletteDefault);
то tabWidget будет отображаться в системной палитре. Можно ли сделать так, чтобы при setPalette изменялась палитра только у соответствующего класса, а у его потомков - нет? То есть нужна функция подобная QApplication::setPalette(palette,className), только чтобы она не влияла на  классы для которых className является parent'ом.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.051 секунд. Запросов: 21.