Название: Почему setPalette для всех виджетов Отправлено: zubr3 от Март 13, 2006, 11:33 В диалоговом окне в конструкторе задаю картинку для фона.
if(pixmap.load(":/background.png")==true) { brushStone.setTexture(pixmap); paletteStone.setBrush(QPalette::Background,brushStone); setPalette(paletteStone); } Однако этот фон почему-то применяется и для tabWidget'а на этом диалоге. На кнопоки и comboBox'ы эта палитра не действует. Подскажите в чем причина этого поведения? Название: Почему setPalette для всех виджетов Отправлено: Asaphus_Expansus от Март 13, 2006, 14:50 Какая версия Qt?
Название: Почему setPalette для всех виджетов Отправлено: zubr3 от Март 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'ом. |