对于所有的Qt窗体,绘制成什么颜色 或者图案,都是由这个这个窗体的QPalette决定的。QPalette就像一个调色版,由预先设定的一些颜色和图案。绘制的时候,程序从中得到相关绘制类型所需要的颜色或图案,然后绘制窗体。默认情况下,一个窗体会使用其parent的QPalette作为自己的QPalette。对于没有parrent的窗体,则使用默认的 Pallete。我们也可以给一个窗体指定一个QPalette。例子如下:
QTreeView * treeView = new QTreeView(Form); //创建一个窗体treeView
treeView->setGeometry(QRect(220, 50, 131, 131)); //设定窗体的位置
QPalette palette1; //新建一个palette
QBrush brush3(QColor(255, 255, 127, 255)); //新建一把刷子
palette1.setBrush(QPalette::Active, QPalette::Base, brush3); //设置调色板的 激活颜色组 里面的 QPalette::Base 类型,用brush3绘制
treeView->setPalette(palette1); //为新建的窗体指定palette
treeView_2 = new QTreeView(Form);
treeView_2->setGeometry(QRect(20, 40, 131, 141));
QPalette palette2;
QBrush brush4(QColor(255, 0, 0, 255));
brush4.setStyle(Qt::SolidPattern);
palette2.setBrush(QPalette::Active, QPalette::Base, brush4);
treeView_2->setPalette(palette2);