Qt Dialog窗體使用自定義標題欄


運行效果如下圖:

可以設計自己喜歡的風格,我這個只是簡單演示功能

 

關鍵代碼:

setWindowFlags(Qt::CustomizeWindowHint|Qt::FramelessWindowHint);  //將主窗體設置為這樣的樣式
uTitleBar = new UTitleBar(this);
uTitleBar->setAutoFillBackground(true);  //自動填充背景
QPalette palette;
palette.setColor(QPalette::Background, QColor("#2162a9"));
uTitleBar->setPalette(palette);
UTitleBar 是繼承為widget的一個自定義類
最后需要在 主窗體的resizeEvent函數中添加下列代碼
void Dialog::resizeEvent(QResizeEvent *)
{
    QRect rc = rect();
    int w = rc.width();
    int h = rc.height();
    
    uTitleBar->setGeometry(0, 0, w, 90); //自定義標題欄位置
}

 

整個思路:1、實現自定義的標題欄 -- > 主窗體設置無標題樣式 -- > 將自定義的標題欄添加到主窗體上 -- > 在主窗體重繪函數中添加變化代碼;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM