天天看點

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

demo下載下傳位址:https://download.csdn.net/download/xiezhongyuan07/10322255

沒有積分的小夥伴,評論留下你的郵箱,看到後第一時間免費發送源碼

繼續閱讀