Russian Qt Forum

Qt => Вопросы новичков => Тема начата: МП© от Март 11, 2012, 10:58



Название: QColor + QPalette оптимизация
Отправлено: МП© от Март 11, 2012, 10:58
При загрузке формы устанавливается цвет элементов следующим образом:
Код
C++ (Qt)
   QPalette pal1;
   pal1.setColor(QPalette::WindowText, Переменная_содержащая_цвет);
   ui->Элемент_1->setPalette(pal1);
 
QPalette pal2;
   pal2.setColor(QPalette::WindowText, Переменная_содержащая_цвет_2);
   ui->Элемент_2->setPalette(pal2);
 

Как можно оптимизировать код, чтобы для каждого элемента не создавать палетт?
 и получить чтото вроде:
Код
C++ (Qt)
ui->Элемент_1->setPalette(pal1.setColor(QPalette::WindowText, Переменная_содержащая_цвет));
ui->Элемент_2->setPalette(pal2.setColor(QPalette::WindowText, Переменная_содержащая_цвет_2));
 


Название: Re: QColor + QPalette оптимизация
Отправлено: _OLEGator_ от Март 11, 2012, 17:14
А кто просит создавать QPalette заново - создавайте 1 раз и используйте:
Код
C++ (Qt)
QPalette pal1;
   pal1.setColor(QPalette::WindowText, Переменная_содержащая_цвет);
   ui->Элемент_1->setPalette(pal1);
 
   pal1.setColor(QPalette::WindowText, Переменная_содержащая_цвет_2);
   ui->Элемент_2->setPalette(pal1);


Название: Re: QColor + QPalette оптимизация
Отправлено: МП© от Март 11, 2012, 19:41

ну это очевидно, а можно ли сделать в одну строку как то так?
Код
C++ (Qt)
ui->Элемент_1->setPalette(pal1.setColor(QPalette::WindowText, Переменная_содержащая_цвет));
ui->Элемент_2->setPalette(pal2.setColor(QPalette::WindowText, Переменная_содержащая_цвет_2));


Название: Re: QColor + QPalette оптимизация
Отправлено: _OLEGator_ от Март 11, 2012, 19:42
Пишите свою функцию, которой на вход будете подавать виджет и цвет, для установки QPalette.
Это тоже очевидно.