无边框,窗口移动代码
2016-01-13 16:16
375 查看
本方法可以指定特定的widget来响应拖动事件
直接上代码
这个是公共方法,判断鼠标是不是在指定widget内,
然后在 主窗口添加变量,和 3个鼠标虚函数;
完事,
直接上代码
这个是公共方法,判断鼠标是不是在指定widget内,
bool isMouseIn(const QWidget* a_widget) { QRect bottombar = a_widget->rect(); QPoint mouseP = a_widget->mapFromGlobal(QCursor::pos()); if (bottombar.contains(mouseP)) { return true; } else { return false; } }
然后在 主窗口添加变量,和 3个鼠标虚函数;
void mousePressEvent(QMouseEvent *); void mouseMoveEvent(QMouseEvent *); void mouseReleaseEvent(QMouseEvent *); private: Ui::LingConClass ui; bool canMove_; QPoint startWindowPos_; QPoint startCuserPos_;
void XXX::mousePressEvent(QMouseEvent *e) { startWindowPos_ = this->pos(); startCuserPos_ = QCursor::pos(); if (common_funs::isMouseIn(ui.topBar) || common_funs::isMouseIn(ui.bottomBar)) { canMove_ = true; } } void XXX::mouseMoveEvent(QMouseEvent *e) { if (canMove_) { QPoint dirction = QCursor::pos() - startCuserPos_; this->move(startWindowPos_ + dirction); } } void XXX::mouseReleaseEvent(QMouseEvent *) { canMove_ = false; }
完事,
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- 在 Linux 中如何移动文件
- QT学习 第一章:基本对话框
- 使用Shiboken为C++和Qt库创建Python绑定
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- PowerShell移动目录中指定文件的方法(非全部文件)
- 鼠标触发移动的分层菜单 层菜单moveMenu
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- 基于Android实现随手指移动的ImageView
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题