当前位置:网站首页>Qt界面优化:Qt去边框与窗体圆角化

Qt界面优化:Qt去边框与窗体圆角化

2022-04-23 14:12:00 ぃ灵彧が

Qt界面优化:Qt去边框与窗体圆角化


一、效果图

在这里插入图片描述

二、使用步骤

1. .h部分

代码如下:

#include <QMovie>
#include <QLabel>
#include <QMouseEvent>
#include <QLine>

//窗体圆角化
#include <QBitmap>
#include <QPainter>
//窗体可拖动
private:
    void mouseMoveEvent(QMouseEvent *event);
    void mousePressEvent(QMouseEvent *event);
    void mouseReleaseEvent(QMouseEvent *event);
    QPoint z;

private:
    void Beawidget(); //窗口界面的优化 

2. .cpp部分

代码如下:

Beawidget(); //窗口界面优化
//窗口可移动
void LoginWidget::mouseMoveEvent(QMouseEvent *event)
{
    
    QWidget::mouseMoveEvent(event);

    QPoint y =event->globalPos(); //鼠标相对于桌面左上角的位置,鼠标全局位置
    QPoint x =y-this->z;
    this->move(x);
}

void LoginWidget::mousePressEvent(QMouseEvent *event)
{
    
    QWidget::mousePressEvent(event);

    QPoint y =event->globalPos(); //鼠标相对于桌面左上角,鼠标全局位置
    QPoint x =this->geometry().topLeft();   //窗口左上角相对于桌面位置,窗口位置
    this-> z =y-x ;//定值不变
}

void LoginWidget::mouseReleaseEvent(QMouseEvent *event)
{
    
    QWidget::mouseReleaseEvent(event);
    this->z=QPoint();
}

//窗口界面优化
void LoginWidget::Beawidget()
{
    
    //窗体去边框
    this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::WindowMinimizeButtonHint);
    this->setWindowTitle("云曦智划");

    //窗体圆角化
    QBitmap bmp(this->size());
    bmp.fill();

    QPainter p(&bmp);
    p.setPen(Qt::NoPen);
    p.setBrush(Qt::black);
    p.drawRoundedRect(bmp.rect(),20,20);

    setMask(bmp);
}


版权声明
本文为[ぃ灵彧が]所创,转载请带上原文链接,感谢
https://blog.csdn.net/m0_54754302/article/details/124342963