Приобрести книгу можно на сайте ozon.ru и в электронном виде на Google Play:
2 thoughts on “Глава 13 – Цветовая палитра элементов управления”
Вопрос накопился.
Второй раз в книге попадается, не могу понять для чего так делать.
листинг 13.1
QPalette pal = spb.palette();
зачем палитре pal присваивать палитру от spb если потом мы ее присвоим обратно?
инициализуруем значения что бы они были не нулевые?
я попробовал QPalette pal; создает палитру которая потом легко модифицируется что к спинбоксу, что к QApplication.
По крайней мере визуально ошибок не наблюдается.
Разъясните пожалуйста.
Это делается потому, что мы хотим аккуратно модифицировать существующую палитру виджета, а не перезаписать ее полностью новыми значениями. Поэтому мы работаем с копией палитры виджета и присваиваем значения только нужным аттрибутам палитры, а потом присваеваем модифицированню палитру обратно виджету. Если Вы будете присваивать всегда новый объект палитры то могут ждать сюрпризы связанные с изменения внешнего вида для виджетов, если их небыло для QSpinBox это не значит, что это будет работать для всех других виджетов, например QTreeView. Так же нужно не забывать, что Вы тестировали это на Windows, а как это будет выглядеть на macOS, Linux, iOS, Android?
Вопрос накопился.
Второй раз в книге попадается, не могу понять для чего так делать.
листинг 13.1
QPalette pal = spb.palette();
зачем палитре pal присваивать палитру от spb если потом мы ее присвоим обратно?
инициализуруем значения что бы они были не нулевые?
я попробовал QPalette pal; создает палитру которая потом легко модифицируется что к спинбоксу, что к QApplication.
По крайней мере визуально ошибок не наблюдается.
Разъясните пожалуйста.
Это делается потому, что мы хотим аккуратно модифицировать существующую палитру виджета, а не перезаписать ее полностью новыми значениями. Поэтому мы работаем с копией палитры виджета и присваиваем значения только нужным аттрибутам палитры, а потом присваеваем модифицированню палитру обратно виджету. Если Вы будете присваивать всегда новый объект палитры то могут ждать сюрпризы связанные с изменения внешнего вида для виджетов, если их небыло для QSpinBox это не значит, что это будет работать для всех других виджетов, например QTreeView. Так же нужно не забывать, что Вы тестировали это на Windows, а как это будет выглядеть на macOS, Linux, iOS, Android?