QWidget 将显式调色板角色从父级传播到子级。如果您将画笔或颜色分配给调色板上的特定角色并将该调色板分配给小部件,则该角色将传播到小部件的所有子级,覆盖该角色的任何系统默认值。
我有一个小部件层次结构:
QMainWindow 'window'
|_QGroupBox 'box'
|_QLabel 'label'
|_QLabel 'label2'
所以如果我要调用box->setPalette(somePalette)
新的调色板来作画box
,label
并且label2
现在我想撤消这个,即我想要box
,label
并label2
使用我的默认调色板,这很容易,我说box->setPalette(window->palette())
对吗?
这个问题在box
技术上仍然有一个自定义调色板集(它会复制你传递给它的调色板),如果我修改window
它的调色板不再传播box
到label
and label2
。
那么,我如何实际删除调色板box
以便恢复调色板传播?