在窗外QT填充背景

时间:2018-04-28 17:25:28

标签: c++ css qt

我已阅读文档以及网站上的许多网站。 不幸的是,我没有找到我的问题的答案。

有没有机会(我相信有)填写弹出窗口外的背景?让我解释一下:如果我的窗口类似于我的整个应用程序,分辨率为500x500 [px],我在中间创建一个300x300的弹出窗口 - 这意味着我每边都有200像素和#34;父窗口"。是否有任何机会(方法,旗帜)以灰色填充背景?

图片:https://imgur.com/Hunev58

1 个答案:

答案 0 :(得分:0)

修改调色板完成工作。这里显示MessageBox时会出现紫色背景,点击后会恢复正常

#include <QApplication>
#include <QMainWindow>
#include <QVBoxLayout>
#include <QLabel>
#include <QPushButton>
#include <QMessageBox>
#include <QPalette>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QMainWindow w;

    QVBoxLayout mainLayout;
    QLabel foolabel("FooLabel");
    QPushButton foobutton("FooButton");
    mainLayout.addWidget(&foolabel);
    mainLayout.addWidget(&foobutton);
    QWidget window;
    window.setLayout(&mainLayout);
    w.setCentralWidget(&window);

    QPalette palette = QApplication::palette(&w);
    palette.setColor(QPalette::Inactive,QPalette::Window,QColor(138,43,226));
    w.setPalette(palette);

    w.show();

    QMessageBox box(&w);
    box.exec();

    return a.exec();
}