qt自定义窗口标题栏

qt自带的标题栏有时候无法满足项目所需,且样式单一,无法进行较大改动,因此想到自定义一个标题栏。


步骤:
1、将原标题栏去掉

    //设置窗口无标题栏
    this->setWindowFlags(Qt::FramelessWindowHint |Qt::WindowSystemMenuHint | Qt::WindowMinMaxButtonsHint);
    qApp->installEventFilter(this);


2、在原窗口的界面顶部预留一块widget,用于作为自定义的标题栏,这里取名叫title_widget。
在这里插入图片描述


3、在自定义标题栏类TitleBar的ui中添加一个widget,存放相应的label和toolbutton,该widget大小与上述原窗口的大小相近。
在这里插入图片描述


4、在主窗口.cpp中给自定义标题栏对象添加布局,再将该布局设置到主窗口。

TitleBar *titlebar = new TitleBar;
    QHBoxLayout *layout = new QHBoxLayout;

    //设置布局内控件贴紧布局边框
    layout->setMargin(0);
    layout->setSpacing(0);

    //添加自定义标题栏
    layout->addWidget(titlebar);
    ui->title_Widget->setLayout(layout);

    //设置窗口固定尺寸
    this->setFixedSize(1300,700);


功能实现代码省略。。。。最终实现效果如下:
在这里插入图片描述

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值