1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > <QT>自定义标题栏拖放/最大化/最小化/关闭窗口功能

<QT>自定义标题栏拖放/最大化/最小化/关闭窗口功能

时间:2024-06-11 01:45:14

相关推荐

<QT>自定义标题栏拖放/最大化/最小化/关闭窗口功能

转:/s/blog_4ba5b45e0102e83h.html要想做出好看的界面,qt自带的标题栏必须摒弃。

以下是两种去掉标题栏的方式:

MainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(newUi::MainWindow){ui->setupUi(this);

this->setWindowFlags(Qt::FramelessWindowHint);//去掉窗口标题栏方式1//this->setWindowFlags(Qt::X11BypassWindowManagerHint);//去掉窗口标题栏2}

简单的代码列在下面:

MainWindow.h

privateslots:voidon_actionMinimize_triggered();//最小化窗口voidon_actionClose_triggered();//关闭窗口protected://自己重新实现拖动操作voidmouseMoveEvent(QMouseEvent*event);voidmousePressEvent(QMouseEvent*event);voidmouseReleaseEvent(QMouseEvent*);private://自己重新实现拖动操作QPointmousePosition;boolisMousePressed;

实现代码:MainWindow.cpp

#include//自己实现的窗口拖动操作#include//鼠标事件

//标题栏的长度conststaticintpos_min_x=0;conststaticintpos_max_x=800-40;conststaticintpos_min_y=0;conststaticintpos_max_y=20;//自己实现的窗口拖动操作voidMainWindow::mousePressEvent(QMouseEvent*event){mousePosition=event->pos();//只对标题栏范围内的鼠标事件进行处理if(mousePosition.x()<=pos_min_x)return;if(mousePosition.x()>=pos_max_x)return;if(mousePosition.y()<=pos_min_y)return;if(mousePosition.y()>=pos_max_y)return;isMousePressed=true;}voidMainWindow::mouseMoveEvent(QMouseEvent*event){if(isMousePressed==true){QPointmovePot=event->globalPos()-mousePosition;move(movePot);}}voidMainWindow::mouseReleaseEvent(QMouseEvent*event){isMousePressed=false;}

voidMainWindow::on_actionMinimize_triggered(){//系统自定义的最小化窗口函数showMinimized();//最大化showMaximized();}voidMainWindow::on_actionClose_triggered(){//系统自定义的窗口关闭函数close();}参考:

自制标题栏的拖放(Qt)

/自制标题栏的拖放qt/

//06/

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。