Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: ymb от Декабрь 26, 2009, 20:24



Название: как установить цвет виджета frame?
Отправлено: ymb от Декабрь 26, 2009, 20:24
Не получается элементарная вещь. Как назначить цвет виджету frame. Хочу использовать его как сигнализатор.(красный - зелёный).Справку читаю.Но пока не понятно. Может для такой задачи есть что-то другое?
(программа делается в QT creator 4.6.0)  


Название: Re: как установить цвет виджета frame?
Отправлено: Dendy от Декабрь 26, 2009, 20:33
Откройте дизайнер и поэкспериментируте с палитрой и типами рамки для QFrame.


Название: Re: как установить цвет виджета frame?
Отправлено: ymb от Декабрь 26, 2009, 20:38
В дизайнере я могу сменить цвет. Я имею ввиду, смену цвета программным способом.
Примерно:
ui->frame_7->palette().setColor(QPalette::Window,Qt::blue);
но это не работает. 


Название: Re: как установить цвет виджета frame?
Отправлено: Dendy от Декабрь 26, 2009, 20:48
Присмотритесь, palette() возвращает не ссылку, а копию палитры, а значит вы меняете палитру в стеке, а не в виджете. Нужно так:

Код
C++ (Qt)
QPalette palette = ui->frame_7->palette();
palette.setColor( QPalette::Window,Qt::blue );
ui->frame_7->setPalette( palette );
 


Название: Re: как установить цвет виджета frame?
Отправлено: ymb от Декабрь 26, 2009, 20:57
Спасибо.