QPalette的用法

时间:2024-12-23 14:06:44

1.QPalette的概念

调色板类QPallete提供了颜色角色(color roles)概念,是指当前GUI界面中颜色的职责,通过枚举变量QPalette::ColorRole来定义,

比较常用的颜色角色有:

QPalete::Window,通常指窗口部件的背景色;

QPalette:WindowText,通常指窗口不见的前景色;

  QPalette::Base,指文本输入窗口部件(比如QtextEdit,QLinedit等)的背景色.

QPalette::Text,与QPalette::Base一块使用,指文本输入窗口部件的前景色;

QPalette::Button,指按钮窗口部件的背景色;

QPalette::ButtonText,指按钮窗口部件的前景色.

2.QPalette的用法

QTextEdit *textEditTip = new QTextEdit;

QPalette pa = textEditTip->palette(); // 取出调色板

pa.setColor(QPalette::Base,red); // 设置调色板

textEditTip->setPalette(pa); // 放回调色板

3.QPalette的例子

QTextEdit *textEditTip = new QTextEdit;

textEditTip->setMaximumHeight(20);

textEditTip->setText("hello");

QLabel *widget = new QLabel;

widget->setMinimumWidth(200);

widget->setText("world");

widget->setStyleSheet("QLabel { background: red }");

statusBar()->addPermanentWidget(widget);

QPalette pal = widget->palette();

QBrush brush = pal.background();

QColor col = brush.color();

QPalette pa = textEditTip->palette();

pa.setColor(QPalette::Base,col);

textEditTip->setPalette(pa);

statusBar()->addPermanentWidget(textEditTip);

解析: 将textEditTip的背景色设置为和widget的背景色一样。