针对自定义标题栏拖动效果问题解决
来源:互联网 发布:java 工作流设计器 编辑:程序博客网 时间:2024/06/05 02:07
工作中需要用Qt实现自定义标题栏,
参考http://blog.csdn.net/liang19890820/article/details/50555298 自定义标题栏;
窗体缩放http://blog.csdn.net/liang19890820/article/details/50557240
整合到一起
FramelessHelper*pHelper=new FramelessHelper(this);pHelper->activateOn(this);//激活当前窗体
pHelper->setTitleHeight(m_pTitleBar->height());//设置窗体的标题栏高度
pHelper->setWidgetMovable(true);//设置窗体可移动
pHelper->setWidgetResizable(true); //设置窗体可缩放
pHelper->setRubberBandOnMove(true);//设置橡皮筋效果-可移动
pHelper->setRubberBandOnResize(true);//设置橡皮筋效果-可缩放
设置橡皮筋效果之后,发生拖动标题栏改变窗体大小之后,RubberBand没有在鼠标弹起之后消失,不可改变大小,无法弹出其他窗口(改窗口永远至于最前端,关闭不了)我的Qt版本是Qt4.8.4 也许是我其他程序设置的问题
我想在拖动的时候给其他界面传递信号,重载mousemoveEvent 发现没有作用,研究大神的代码
在自定义标题栏 http://blog.csdn.net/liang19890820/article/details/50555298 中,
voidTitleBar::mousePressEvent(QMouseEvent *event)
{
#ifdef Q_OS_WIN
if (ReleaseCapture()) //在pressEvent 中使用该句,鼠标的move 、release事件就无法获取到
{
QWidget *pWindow = this->window();
if (pWindow->isTopLevel())
{
SendMessage(HWND(pWindow->winId()), WM_SYSCOMMAND,SC_MOVE + HTCAPTION,0);
//该函数可以在拉伸窗体的时候 标题栏随着拉伸一起变化,同时不会引起自定义的(最大、最小、关闭)按钮重影
}
}
event->ignore();
#else#endif
}
想着采用 http://blog.csdn.net/GoForwardToStep/article/details/53494800 中的拖动办法,但是出现线标题栏随界面拉伸重影问题,
修改
voidTitleBar::mousePressEvent(QMouseEvent *event)
{
#ifdef Q_OS_WIN
emit 点击信号,触发计时器,Qtimer 不断发送类似于拖动信号
if (ReleaseCapture()) //在pressEvent 中使用该句,鼠标的move 、release事件就无法获取到
{
QWidget *pWindow = this->window();
if (pWindow->isTopLevel())
{
SendMessage(HWND(pWindow->winId()), WM_SYSCOMMAND,SC_MOVE + HTCAPTION,0);
//该函数可以在拉伸窗体的时候 标题栏随着拉伸一起变化,同时不会引起自定义的(最大、最小、关闭)按钮重影
emit 关闭计时器信号,停止发送类似于拖动信号
}
}
event->ignore();
#else#endif
}
- 针对自定义标题栏拖动效果问题解决
- VB.NET自定义标题栏拖动
- C# 实现无标题栏窗口拖动效果
- QT自定义窗口标题栏实现拖动双击放大缩小
- electron 自定义 标题栏,最小化按钮等,拖动代码
- 自定义窗口的玻璃效果(边框,标题栏...)
- 自定义窗口的玻璃效果(边框,标题栏...)
- iOS实现自定义进度条、拖动条效果
- Qt自定义标题栏详细介绍(可拖动、放大缩小、关闭、标题栏具有渐变色)
- 实现无标题栏拖动
- 拖动无标题栏窗体
- 无标题栏窗口拖动
- 无标题栏窗体拖动
- c# 实现用鼠标拖动没有标题栏的窗口(窗体的任何部分都可实现拖动效果)
- 实现用鼠标拖动没有标题栏的窗口(窗体的任何部分都可实现拖动效果)
- 拖动效果
- 拖动效果
- 拖动效果
- 0426-CSS三大特性之继承性
- MD5加密算法简单实现
- hibernate:XXX is not mapped问题
- PAT 乙等 1018 C语言
- Learning to Compare Image Patches via Convolutional Neural Networks
- 针对自定义标题栏拖动效果问题解决
- Phpstorm激活
- java学习笔记--文件传输io流
- 用 TensorFlow 做个聊天机器人
- Android通过Http连接MySQL 实现登陆/注册(数据库+服务器+客户端)
- 线程通信
- 0426-CSS三大特性之层叠性
- 1010. 一元多项式求导
- Jsoup学习