1. 程式人生 > >Qt QDialog 設置圓角

Qt QDialog 設置圓角

css dialog 怎麽 flags ntb shadow 普通 image tool

對於普通的控件,我們通過樣式表(css)設置圓角就比較簡單

border-radius:5px

但是這個方法對於QDialog並沒有作用。經過仔細研究發現了。原來QDialog只是一個容器,對於已經設置無邊框(Qt::FramelessWindowHint)的對話框,直接設置border-radius並沒有作用。

那怎麽辦呢?

我們可以在QDialog裏放置一個QFrame控件,所有的布局都在QFrame控件裏設置。然後設置QFrame控件的圓角就ok了。

1.結構應該就是這樣子的。

技術分享圖片
2.設置frame的樣式表

QFrame
{
    background-color:#ffffff;

    border:none;
    border-radius:10px;
}

3.設置QDialog對話框的屬性:在dialog對話框的構造函數設置對話框背景透明

    setWindowFlags(Qt::FramelessWindowHint | Qt::Tool);
    setAttribute(Qt::WA_TranslucentBackground);

技術分享圖片

Qt QDialog 設置圓角