我使用样式表在QMainWindow
上设置了边框图像:
QMainWindow
{
border-image: url(:/metal_background);
}
在我的程序中,有几个透明背景颜色的小部件位于主窗口的顶部。然而,当我拖放它们时,它们看起来很糟糕,因为它们最终会获得系统背景颜色。
我想要做的是获取用于绘制主窗口背景的画笔(?),并使用它在移动时绘制子窗口小部件。我试过了:
QWidget* widget;
QMainWindow* mainWindow;
QList<QWidget*> widgets = qApp->topLevelWidgets();
foreach(widget, widgets)
{
if(widget->objectName() == "mainWindow") // name is OK
break;
}
mainWindow = static_cast<QMainWindow*>(widget);
qDebug() << mainWindow->objectName();
QPalette palette;
palette.setBrush(this->backgroundRole(),
mainWindow->palette().brush(mainWindow->backgroundRole()));
this->setPalette(palette);
this->repaint();
但是它给出了背景颜色/渐变,而不是图像。我做错了什么,还是有其他/更好的方法来获取图像?