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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QColor + QPalette оптимизация  (Прочитано 2652 раз)
МП©
Гость
« : Март 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));
 
Записан
_OLEGator_
Гость
« Ответ #1 : Март 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);
Записан
МП©
Гость
« Ответ #2 : Март 11, 2012, 19:41 »


ну это очевидно, а можно ли сделать в одну строку как то так?
Код
C++ (Qt)
ui->Элемент_1->setPalette(pal1.setColor(QPalette::WindowText, Переменная_содержащая_цвет));
ui->Элемент_2->setPalette(pal2.setColor(QPalette::WindowText, Переменная_содержащая_цвет_2));
Записан
_OLEGator_
Гость
« Ответ #3 : Март 11, 2012, 19:42 »

Пишите свою функцию, которой на вход будете подавать виджет и цвет, для установки QPalette.
Это тоже очевидно.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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