Насколько я понимаю здесь создается объект палитры – 1 строка, далее фону присваивается синий цвет, а тексту желтый – 2 и 3 строки, а в 4 сроке для виджета txt (текстового редактора) устанавливается палитра pal.
Вопрос следующий: зачем в первой строке мы объекту pal присваиваем txt.palette()? Если первую строку сделать вида: “QPalette pal;”, т.е. просто создать объект палитры, то всё так же работает…
Это сделано для того что бы изменить только указанные значения палитры Base и Text. В противном случае нет гарантий у созданного по умолчанию объекта класса QPalette все значения палитры совпадали бы с палитрой объекта класса QTextEdit. То есть это сделано для того что бы непреднамеренно не изменить некоторые значения палитры объекта txt.
Здравствуйте, Макс!
На стр. 167 Листинг 10.5 приведен код функции main(). Там есть строки:
1. QPalette pal = txt.palette();
2. pal.setColor(QPalette::Base, Qt::darkBlue);
3. pal.setColor(QPalette::Text, Qt::yellow);
4. txt.setPalette(pal);
Насколько я понимаю здесь создается объект палитры – 1 строка, далее фону присваивается синий цвет, а тексту желтый – 2 и 3 строки, а в 4 сроке для виджета txt (текстового редактора) устанавливается палитра pal.
Вопрос следующий: зачем в первой строке мы объекту pal присваиваем txt.palette()? Если первую строку сделать вида: “QPalette pal;”, т.е. просто создать объект палитры, то всё так же работает…
Это сделано для того что бы изменить только указанные значения палитры Base и Text. В противном случае нет гарантий у созданного по умолчанию объекта класса QPalette все значения палитры совпадали бы с палитрой объекта класса QTextEdit. То есть это сделано для того что бы непреднамеренно не изменить некоторые значения палитры объекта txt.
Понял, спасибо за разъяснение!