QT去边框化处理

前言

在做界面设计的时候,我们常常希望界面更加清新简洁,而做到清醒简洁的首要条件是部件都在自己的可操作范围之中,而QT的界面自带的边框及其违和,下面用几行代码即可去除自带的边框。

一、在构造函数添加 除边框的代码

this->setWindowFlags(Qt::FramelessWindowHint);

二、解决窗口无法移动的问题

当执行完第一步操作以后,可以观察到窗口边框已经去掉,但发现此时的窗口不能自由移动。此时需要重写鼠标按下和移动事件。在头文件添加如下代码:

void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
 
//记录鼠标,窗口位置
QPoint windowPos;
QPoint mousePos;
QPoint dPos;

在CPP文件添加如下代码

void WarnDlg::mousePressEvent(QMouseEvent *event)
{
	this->windowPos = this->pos();       // 获得部件当前位置
	this->mousePos = event->globalPos(); // 获得鼠标位置
	this->dPos = mousePos - windowPos;   // 移动后部件所在的位置
}
 
void WarnDlg::mouseMoveEvent(QMouseEvent *event)
{
	this->move(event->globalPos() - this->dPos);
}

三、最小化和关闭按钮

去掉系统自带的边框以后,一些基础的按钮功能需要自己实现,下面给出最小化和关闭按钮需要的函数。

最小化:

showMinimized();

关闭:

close();
Qt是一个功能强大的跨平台C++框架,可以用来开发图形用户界面应用程序。在Qt中,我们可以自定义应用程序的标题栏和边框。 自定义标题栏通常需要采用以下步骤来实现: 1. 使用Qt的窗口样式表(QSS)来定义标题栏的外观。我们可以设置标题栏的背景颜色、字体、边框等属性,可以自定义按钮的样式、位置和功能等。 2. 使用Qt的信号和槽机制来处理标题栏按钮的点击事件。通过连接按钮的clicked()信号到我们自定义的槽函数,我们可以实现关闭、最小、最大按钮的功能。 3. 在窗口的构造函数中去掉自带的标题栏。我们可以使用setWindowFlags()函数来设置窗口的属性,将窗口的标题栏隐藏掉。 自定义边框通常需要采用以下步骤来实现: 1. 设置窗口的边框样式。我们可以使用setStyleSheet()函数来设置窗口的外观,包括边框颜色、线条粗细等。 2. 自定义边框的绘制。我们可以使用Qt的绘图功能来绘制窗口的边框,可以通过重写窗口的paintEvent()函数,在窗口绘制时添加绘制边框的代码。 3. 处理边框的拖动事件。我们可以重写窗口的mousePressEvent()、mouseMoveEvent()和mouseReleaseEvent()函数,实现窗口的拖动功能。 总之,Qt提供了丰富的功能和灵活的API来自定义应用程序的标题栏和边框。开发者可以根据自己的需求来定制应用程序的外观,使其更加个性和美观。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值