Qt QMenu删除阴影

时间:2012-10-02 13:45:17

标签: qt qmenu

我有一个半透明背景和圆边(边缘半径)的QMenu。不幸的是,Windows 7为此菜单绘制了阴影,这不适合圆角边缘。它是正常矩形菜单的阴影。

还有吗?   - 一种完全禁用QMenu绘制阴影的方法 要么   - 使阴影适合圆角的方法 ?

这是一个简单的例子:

#include <QApplication>
#include <QPushButton>
#include <QMenu>

int main(int argc, char *argv[]) {
    QApplication a(argc, argv);
    QPushButton b("press me");
    QMenu m;
    m.addAction("hello"); m.addAction("world");
    m.setWindowFlags(m.windowFlags() | Qt::FramelessWindowHint);
    m.setAttribute(Qt::WA_TranslucentBackground);
    m.setStyleSheet("background:rgba(255,0,0,50%); border-radius:5px;");
    b.setMenu(&m);
    b.show();
    return a.exec();
}

1 个答案:

答案 0 :(得分:1)

这应该这样做:

w.setWindowFlags(w.windowFlags() | Qt::NoDropShadowWindowHint);