QT---字幕滚动效果,检测鼠标进入和离开控制字幕滚动
来源:互联网 发布:什么漫画软件好 编辑:程序博客网 时间:2024/05/20 16:43
- 鼠标的进入和离开的检测
- 滚动字幕实现
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++;}
0 0
- QT---字幕滚动效果,检测鼠标进入和离开控制字幕滚动
- Qt实现滚动字幕效果
- JavaScript字幕滚动效果
- Qt之滚动字幕
- Qt 字幕滚动程序
- Qt实现滚动字幕
- QT 字幕滚动(左右滚动)
- flex滚动字幕和图片效果
- 滚动字幕,鼠标经过停留
- 滚动字幕
- 滚动字幕
- 滚动字幕
- 滚动字幕
- 滚动字幕
- 滚动字幕
- 滚动字幕
- 滚动字幕
- Html实现滚动字幕效果
- JDBC连接及一些例子
- [C/C++]_[初级]_[读取文件,每次读取一行并显示]
- centos find 查找内容
- 最小二乘法直线拟合简介
- 梧州会计从业资格考试宝典60元通用版下载4
- QT---字幕滚动效果,检测鼠标进入和离开控制字幕滚动
- Premiere工程移植到其他电脑上打不开的解决方案
- 学习之学籍管理系统
- Mobiscroll 2.15 去除Trial
- gcc: error trying to exec 'cc1': execvp: No such file or directory
- hdu4738 Caocao's Bridges(双连通分量割边/桥)
- python实现栅格计算器功能
- java线程锁 synchronized
- spring AOP 前置增强,后置增强小Demo