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