Qt自定义主窗口的放大,缩小,关闭功能

Qt标题栏无法添加自定义按钮,修改样式也改不了;所以需要自定义标题栏;同时支持拖动,双击放大的功能;

按钮设置

复制代码
//设置为无边框,自定义关闭,放大,缩小按钮
    this->setWindowFlags(Qt::FramelessWindowHint);
    //顶部按钮响应
    connect(ui.pBClose, &QPushButton::clicked, [=]() {close(); });
    connect(ui.pBMaxWindow, &QPushButton::clicked, [=]() 
    {    if (this->isMaximized())
        {
            this->showNormal();
        }
        else
        {
            this->showMaximized();
        }
    });
    connect(ui.pBMinWindow, &QPushButton::clicked, [=]() {this->showMinimized(); });
复制代码

 

复制代码
void AlgorithmConfig::mousePressEvent(QMouseEvent * event)
{
    //只能是鼠标左键移动和改变大小
    if (event->button() == Qt::LeftButton)
    {
        if (ui.widgetToolBar->underMouse())
        {
            m_leftMousePressed = true;
            //按下时鼠标左键时,窗口在屏幕中的坐标
            m_StartPoint = event->globalPos();
        }
    }


}

void AlgorithmConfig::mouseReleaseEvent(QMouseEvent * event)
{
    m_leftMousePressed = false;
}

void AlgorithmConfig::mouseDoubleClickEvent(QMouseEvent * event)
{
    if (ui.widgetToolBar->underMouse())
    {
        if (isMaximized())
        {
            showNormal();
        }
        else
        {
            showMaximized();
        }
    }
}
复制代码

 

posted @   一字千金  阅读(876)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示