gpt4 book ai didi

c++ - Qt为所有对话框设置通用背景

转载 作者:太空宇宙 更新时间:2023-11-04 12:57:49 24 4
gpt4 key购买 nike

我正在开发一个 Qt 5 小部件桌面应用程序,我想为所有弹出的窗口和对话框提供一个共同的背景。问题是对于每个窗口,我必须一遍又一遍地指定相同的代码片段以加载相同的背景。我还使用了 paint 函数覆盖,以免在调整窗口大小时扭曲背景。这是我的代码:

SettingsDialog::SettingsDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::SettingsDialog)
{
ui->setupUi(this);
pixmapBg.load(":/images/google-material-design-wallpaper-10.jpg");
}
void SettingsDialog::paintEvent(QPaintEvent *pe)
{
QPixmap pixmapBgL = pixmapBg.scaled(this->size());
QPalette palette;
palette.setBrush(QPalette::Background, pixmapBgL);
this->setPalette(palette);
}

有没有一种方法可以在 Qt 中使用单个文件而不是为每个窗口提及它?

最佳答案

是的,你可以!您将必须提供您的 own stylesheet ,或通过调用 QApplication::setStyleSheet(styleName) 来初始化您的应用程序.

跟进评论:setStyleSheet 是最快的方法,即

qApp->setStyleSheet("QDialog, QMessageBox {background-image: url(:/images/google-material-design-wallpaper-10.jpg);}");

假设您有一个有效的 QApplication 引用 qApp。请注意,如果您想细化样式表的范围,您也可以引用您的自定义子类。

关于c++ - Qt为所有对话框设置通用背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45754521/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com