gpt4 book ai didi

c++ - QGraphicsDropShadowEffect 仅适用于 ui 上的一项,尽管我到处都使用它

转载 作者:行者123 更新时间:2023-11-28 02:49:28 24 4
gpt4 key购买 nike

我正在使用 QGraphicsDropShadowEffect 使我的 GUI 看起来更漂亮。最小工作样本:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QGraphicsDropShadowEffect>

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

QGraphicsDropShadowEffect *g = new QGraphicsDropShadowEffect(this);
ui->pushButton->setGraphicsEffect(g);
ui->pushButton_2->setGraphicsEffect(g);
ui->pushButton_3->setGraphicsEffect(g);
}

MainWindow::~MainWindow()
{
delete ui;
}

如您所见,我有 3 个按钮,并且希望在每个按钮的顶部都有一个漂亮的阴影。虽然我在每个按钮上都设置了图形效果,但它只能在最后一个按钮上看到,这是图片:

enter image description here

我该如何改进它,原因是什么?

这个有效:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QGraphicsDropShadowEffect>

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

QGraphicsDropShadowEffect *g1 = new QGraphicsDropShadowEffect(this);
QGraphicsDropShadowEffect *g2 = new QGraphicsDropShadowEffect(this);
QGraphicsDropShadowEffect *g3 = new QGraphicsDropShadowEffect(this);

ui->pushButton->setGraphicsEffect(g1);
ui->pushButton_2->setGraphicsEffect(g2);
ui->pushButton_3->setGraphicsEffect(g3);
}

MainWindow::~MainWindow()
{
delete ui;
}

但似乎不是我能拥有的最佳解决方案。 enter image description here

最佳答案

这是你调用的函数的正常行为

查看文档 http://qt-project.org/doc/qt-4.8/qgraphicsitem.html#setGraphicsEffect

If effect is the installed on a different item, setGraphicsEffect() will remove the effect from the item and install it on this item.

关于c++ - QGraphicsDropShadowEffect 仅适用于 ui 上的一项,尽管我到处都使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23398461/

24 4 0
文章推荐: javascript - 如何使用javascript访问gridview单元格值
文章推荐: javascript - 如何跨浏览器确定 contenteditable 元素内的节点是否为空?
文章推荐: c++ - 树的高度的复杂性
文章推荐: html - 保持宽高比并防止
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com