QT---字幕滚动效果,检测鼠标进入和离开控制字幕滚动
2015-05-21 22:14
316 查看
鼠标的进入和离开的检测
滚动字幕实现
然后用重写的类去创建实例。
【方法二】用事件过滤器,eventFilter()。
Qt的事件模型中提供的事件过滤功能使得一个QObject对象可以监视另一个QObject对象中的事件,通过在一个QObject对象中安装事件过滤器可以在事件到达该对象前捕获事件,从而起到监视该对象事件的效果。事件过滤器可以实现在窗体中监视全部控件的不同事件,方便实现功能扩展。若一个窗体中包含多个控件的话,再用重写的方式就有点麻烦了,所以就用事件过滤器来实现。
滚动字幕实现
1. 鼠标的进入和离开的检测
【方法一】重写构件的enterEvent()、leaveEvent()方法。注意,focusInEvent()和focusOutEvent()这两个函数是判别该控件是否聚焦的,只要在控件在操作上(包括程序操作)有改变,都会促发这两个函数。 如重写label构件方法,
.h文件
classLabel:publicQLabel { Q_OBJECT public: explicitLabel(QWidget*parent=0); protected: voidenterEvent(QEvent*event); voidleaveEvent(QEvent*event); };
.cpp文件
voidLabel::enterEvent(QEvent*event) { qDebug()<<"enter"; } voidLabel::leaveEvent(QEvent*event) { qDebug()<<"leave"; }
然后用重写的类去创建实例。
【方法二】用事件过滤器,eventFilter()。
Qt的事件模型中提供的事件过滤功能使得一个QObject对象可以监视另一个QObject对象中的事件,通过在一个QObject对象中安装事件过滤器可以在事件到达该对象前捕获事件,从而起到监视该对象事件的效果。事件过滤器可以实现在窗体中监视全部控件的不同事件,方便实现功能扩展。若一个窗体中包含多个控件的话,再用重写的方式就有点麻烦了,所以就用事件过滤器来实现。
.h文件
publicslots: booleventFilter(QObject*,QEvent*);
.cpp文件
boolMainWindow::eventFilter(QObject*watched,QEvent*even) { if(watched==ui->m_scrollCaptionLabel)//判断控件 { if(event->type()==QEvent::Enter)//然后再判断控件的具体事件 { qDebug()<<"filterenter"; returntrue; } if(event->type()==QEvent::Leave)//然后再判断控件的具体事件 { qDebug()<<"filterleave"; returntrue; } } qDebug()<<"..."; returnQWidget::eventFilter(watched,event);//调用基类函数,把事件传递下去 }
2. 滚动字幕实现
滚动字幕(跑马灯效果):利用定时器,在固定的时间间隔(这里为500毫秒)截取文本,来实现滚动效果。
scrollStr=QStringLiteral("滚动字幕(跑马灯效果):利用定时器,在固定的时间间隔(这里为500毫秒)截取文本,来实现滚动效果"); timer=newQTimer(this); connect(timer,SIGNAL(timeout()),this,SLOT(scrollSlot())); timer->start(500); ------------------------------------------------------ voidMainWindow::scrollSlot() { staticintnPos=0; if(nPos>scrollStr.length()) { nPos=0; } ui->scrollLabel->setText(scrollStr.mid(nPos)); nPos++; }
相关文章推荐
- JavaScript一点也不简单—实现“鼠标控制局部文字滚动效果”初探
- JS判断鼠标进入或离开容器的方向做出特殊hover效果
- Qt实现滚动字幕效果
- JS实现“鼠标控制局部文字滚动效果”研究
- QT制作字幕滚动效果
- 仿拉勾网动画效果-----鼠标进入和离开元素4个方向对应的相关操作(非常炫酷)
- Qt 5滚动字幕(左/右)+闪烁效果(QLabel控件显示)
- easyui datagrid 实现鼠标滚动翻页效果(不是点击下一页)
- 兼容FF,JS不间断循环滚动,包含自滚动,左右自滚动,点击左右滚动,鼠标暂停效果
- jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
- Android 天气预报图文字幕垂直滚动效果
- 鼠标滚动缩放图片效果
- 用javascript代替marquee的滚动字幕效果代码
- Jquery控制滚动显示欢迎字幕v2
- CSS控制当鼠标滑过时更换图片的效果
- 一个js实现简单的字幕滚动效果
- 用鼠标和按钮控制网页指定内容的上下滚动
- [转载]Qt 水平滚动字幕
- android字幕滚动,屏幕宽度计算,时间控制