Qt之去除窗口的标题栏、通过鼠标移动窗口
2017-05-24 17:06
465 查看
------------ main.c ------------------- #include<QApplication> #include<QWidget> #include<QDebug> #include"mywidget.h" int main(int argc,char **argv) { QApplication app(argc,argv); //功能新的需求:不再使用框架提供的窗口,自定义一个窗口; //派生类; MyWidget w; //MyWidget类继承于基类QWidget类; w.show(); return app.exec(); } ------------ MyWidget.h ------------------- #ifndef MYWIDGET_H #define MYWIDGET_H #include<QMouseEvent> #include <QWidget> class MyWidget : public QWidget { Q_OBJECT public: explicit MyWidget(QWidget *parent = 0); void mousePressEvent(QMouseEvent *ev); void mouseMoveEvent(QMouseEvent *ev); //移动窗口 void mouseReleaseEvent(QMouseEvent *ev); //释放窗口 //鼠标原始位置 QPoint posMouseOrigin; signals: public slots: }; #endif // MYWIDGET_H ------------ MyWidget.cpp ------------------- #include "mywidget.h" #include<QDebug> #include<QWidget> #include<QPoint> #include<QMouseEvent> MyWidget::MyWidget(QWidget *parent) : QWidget(parent) { this->setWindowFlags(Qt::FramelessWindowHint); //去掉标题栏; } //获取鼠标的按下操作 void MyWidget::mousePressEvent(QMouseEvent *ev) { this->posMouseOrigin = QCursor::pos(); //cursor是一个光标类; } //获得鼠标移动的操作 void MyWidget::mouseMoveEvent(QMouseEvent *ev) { QPoint ptMouseNow = QCursor::pos(); QPoint ptDelta = ptMouseNow - this->posMouseOrigin; move(this->pos() + ptDelta); posMouseOrigin = ptMouseNow; } //获得鼠标的释放操作; void MyWidget::mouseReleaseEvent(QMouseEvent *ev) { }
相关文章推荐
- QT 隐藏标题栏 窗口移动 鼠标事件
- Qt 通过鼠标移动窗口
- Qt 结构体 正则表达 居中显示 页面置顶 页面全局化 标题命名 标题最大化等按钮失效 去标题栏令窗口不可移动
- QtWidget: 鼠标拖动窗口(没有标题栏时)
- MFC对话框禁止移动 使标题栏不响应鼠标消息 通过客户区移动窗体 OnNcHitTest()的实现
- Qt 在自定义标题栏长按鼠标左键来实现窗体移动
- Qt鼠标移动显示隐藏窗口
- MFC对话框禁止移动 使标题栏不响应鼠标消息 通过客户区移动窗体 OnNcHitTest()的实现
- QT窗口渐现效果,窗口震动效果,鼠标移动窗口
- Qt:支持鼠标拖动来移动内容的窗口
- Qt 实现鼠标左键按下拖住窗口移动
- Qt 技巧:去除对话框边框 + 设置窗口可移动和透明
- Qt去掉窗口标题栏实现移动缩放
- Qt:支持鼠标拖动来移动内容的窗口
- winForm 实现鼠标拖动标题栏不移动窗口 和 拖动用户区移动窗口
- QtWidget: 鼠标拖动窗口(没有标题栏时)
- 【框架-MFC】禁用鼠标拖拽标题栏移动窗口
- MFC Dialog 如何屏蔽鼠标放在标题栏上移动窗口的功能
- 【Qt】自定义标题栏并实现鼠标拖拽移动
- Qt无边框窗口的移动、拉伸边框、鼠标滚轮缩放大小