• 大小: 9.24MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-09
  • 语言: 其他
  • 标签: QT  

资源简介

QT自定义窗口 自由拖动 自定义标题

资源截图

代码片段和文件信息

#include “customwindow.h“
#include 
#include 

CustomWindow::CustomWindow(QWidget *parent)
{
mMoveing=false;
//Qt::framelessWindowHint 无边框
    //Qt::WindowStaysOnTopHint 窗口在最顶端,不会拖到任务栏下面
setWindowFlags(Qt::framelessWindowHint | Qt::WindowMinimizeButtonHint |Qt::WindowStaysOnTopHint);
this->setstyleSheet(“QDialog{border:2px solid green;}“);
}
CustomWindow::~CustomWindow()
{}

//重写鼠标按下事件
void CustomWindow::mousePressEvent(QMouseEvent *event)
{
mMoveing = true;
//记录下鼠标相对于窗口的位置
//event->globalPos()鼠标按下时,鼠标相对于整个屏幕位置
//pos() this->pos()鼠标按下时,窗口相对于整个屏幕位置
mMovePosition = event->globalPos() - pos();
return QDialog::mousePressEvent(event);
}

//重写鼠标移动事件
void CustomWindow::mouseMoveEvent(QMouseEvent *event)
{
//(event->buttons() && Qt::LeftButton)按下是左键
//鼠标移动事件需要移动窗口,窗口移动到哪里呢?就是要获取鼠标移动中,窗口在整个屏幕的坐标,然后move到这个坐标,怎么获取坐标?
//通过事件event->globalPos()知道鼠标坐标,鼠标坐标减去鼠标相对于窗口位置,就是窗口在整个屏幕的坐标
if (mMoveing && (event->buttons() && Qt::LeftButton)
&& (event->globalPos()-mMovePosition).manhattanLength() > QApplication::startDragDistance()) 
{  
move(event->globalPos()-mMovePosition);
mMovePosition = event->globalPos() - pos();
}
return QDialog::mouseMoveEvent(event);
}
void CustomWindow::mouseReleaseEvent(QMouseEvent *event)
{
mMoveing = false;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1527  2016-06-19 16:06  CustomWindow\CustomWindow\customwindow.cpp

     文件        457  2016-06-19 15:48  CustomWindow\CustomWindow\customwindow.h

     文件         72  2016-06-19 15:43  CustomWindow\CustomWindow\customwindow.qrc

     文件       9346  2016-06-19 15:56  CustomWindow\CustomWindow\CustomWindow.vcxproj

     文件       2466  2016-06-19 15:56  CustomWindow\CustomWindow\CustomWindow.vcxproj.filters

     文件        504  2016-06-19 15:56  CustomWindow\CustomWindow\CustomWindow.vcxproj.user

     文件       2177  2016-06-19 16:35  CustomWindow\CustomWindow\Debug\CustomWindow.Build.CppClean.log

     文件        465  2016-06-19 16:35  CustomWindow\CustomWindow\Debug\CustomWindow.log

     文件        179  2016-06-19 15:43  CustomWindow\CustomWindow\main.cpp

     文件   17977344  2016-06-19 16:35  CustomWindow\CustomWindow.sdf

     文件        903  2016-06-19 15:43  CustomWindow\CustomWindow.sln

    ..A..H.     16384  2016-06-19 16:35  CustomWindow\CustomWindow.suo

     文件   39452672  2016-06-19 15:50  CustomWindow\ipch\customwindow-440ee974\customwindow-89fb3f9f.ipch

     目录          0  2016-06-19 16:35  CustomWindow\CustomWindow\GeneratedFiles\Debug

     目录          0  2016-06-19 15:43  CustomWindow\CustomWindow\GeneratedFiles\Release

     目录          0  2016-06-19 16:35  CustomWindow\CustomWindow\Debug

     目录          0  2016-06-19 16:35  CustomWindow\CustomWindow\GeneratedFiles

     目录          0  2016-06-19 15:43  CustomWindow\CustomWindow\Resources

     目录          0  2016-06-19 15:50  CustomWindow\ipch\customwindow-440ee974

     目录          0  2016-06-19 15:56  CustomWindow\CustomWindow

     目录          0  2016-06-19 15:43  CustomWindow\ipch

     目录          0  2016-06-19 16:35  CustomWindow

----------- ---------  ---------- -----  ----

             57464496                    22


评论

共有 条评论