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

Qt QDialog 設定圓角

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

border-radius:5px

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

那怎麼辦呢?

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

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

Qt QDialog 設定圓角
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 設定圓角