以编程方式查找MainWindow的边框图像

时间:2014-10-17 16:37:36

标签: qt

我使用样式表在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();

但是它给出了背景颜色/渐变,而不是图像。我做错了什么,还是有其他/更好的方法来获取图像?

0 个答案:

没有答案