你是网站设计有限公司的项目经理,plc编程入门基础知识,wordpress wp-stats,ps广告设计步骤提要
在窗口上悬浮鼠标#xff0c;此时窗口标题栏显示#xff0c;窗口变大#xff0c;鼠标移开后#xff0c;窗口恢复原来的大小#xff0c;标题栏隐藏。
示例
直接上代码#xff0c;只包含只要的代码部分。 在自定义的窗口中重写鼠标进入事件enterEvent和鼠标离开事件…提要
在窗口上悬浮鼠标此时窗口标题栏显示窗口变大鼠标移开后窗口恢复原来的大小标题栏隐藏。
示例
直接上代码只包含只要的代码部分。 在自定义的窗口中重写鼠标进入事件enterEvent和鼠标离开事件leaveEvent在其内部实现窗口的变大恢复。 在构造函数中将标题栏隐藏。 ui-titleWidget为自定义标题栏。
ui-titleWidget-hide();//变量定义
QRect m_oldSizePos;//保存之前的窗口大小
bool m_isFloatWin;//是否有窗口浮动
#define BASE_W 1920//基本屏幕分辨率
#define BASE_H 1080
#define FLOATWIN_RANGE 800//悬浮窗口的区域为800x800的矩形框内呈现悬浮窗口//其中 m_percentW (qreal)BASE_W / screen.width();
// m_percentH (qreal)BASE_H / screen.height();为
//1920x1080与当前屏幕分辨率的比值void CustomWidget::enterEvent(QEvent *event)
{ui-titleWidget-show();//标题栏显示//保存原来的窗口大小位置m_oldSizePos geometry();//获取窗口左上角坐标(场景坐标)QRect rectWin geometry();outPut矩形的宽rectWin.width()高rectWin.height()x:rectWin.x()y:rectWin.y();//求出窗口宽高的最大值int max rectWin.width() rectWin.height() ? rectWin.width():rectWin.height();//最大值是否小于浮动窗口的区域小于出现浮动窗口大于不需要出现浮动窗口if(max FLOATWIN_RANGE)//FLOATWIN_RANGE一个宏值为700可以自己设{max FLOATWIN_RANGE;//最长的边为700int otherLen;//另一边长if(rectWin.width() rectWin.height())//宽大与高{otherLen (float)FLOATWIN_RANGE / rectWin.width() * rectWin.height();rectWin.setWidth(max);rectWin.setHeight(otherLen);}else//高大于宽{otherLen (float)FLOATWIN_RANGE / rectWin.height() * rectWin.width();rectWin.setWidth(otherLen);rectWin.setHeight(max);}if(rectWin.x() rectWin.width() SCENE_W / m_percentW){rectWin.moveLeft(SCENE_W / m_percentW - rectWin.width());//setX会改变矩形的宽所以没有使用}if(rectWin.y() rectWin.height() SCENE_H / m_percentH){rectWin.moveTop(SCENE_H /m_percentH - rectWin.height());//设置y值}setGeometry(rectWin);//设置变大后窗口的大小m_isFloatWin true;outPut矩形放大后宽rectWin.width()高rectWin.height()x:rectWin.x()y:rectWin.y();}
}void CustomWidget::leaveEvent(QEvent *event)
{ui-titleWidget-hide();//隐藏标题栏if(m_isFloatWin){//窗口恢复大小setGeometry(m_oldSizePos);//窗口恢复之前的大小outPut矩形恢复之前的宽m_oldSizePos.width()高m_oldSizePos.height()x:m_oldSizePos.x()y:m_oldSizePos.y();m_isFloatWin false;}
}以上可以将原来的窗口在鼠标悬浮时放大并显示标题栏鼠标移开窗口窗口恢复之前的大小。