7

半透明の背景と丸みを帯びたエッジ (border-radius) を持つ 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();
}
4

1 に答える 1

5

これはそれを行う必要があります:

w.setWindowFlags(w.windowFlags() | Qt::NoDropShadowWindowHint);
于 2016-10-02T22:48:53.770 に答える