赞
踩
来源,常见的视频播放器画面窗口在还是整体的一部分,当双击时会全屏播放,这里解决全屏显示的问题,关于捕获鼠标时间见博文
事件过滤器
鼠标事件
QT中窗口部件QWidget成员函数showFullScreen(); 是用于将窗口部件全屏显示,但是它只对窗口模式的部件有用。子窗口的特征是Qt::SubWindow,不是独立的窗口。因此对其调用showFullScreen()无效。
通过对对子窗口调用:setWindowFlags(Qt::Dialog);setWindowFlags(Qt::Window);将其设为窗口模式后,即可调用showFullScreen();进行全屏显示了。注意顺序不能颠倒。因为showFullScreen()函数只对顶级窗口有效。
MFC中,子窗口退出全屏的方法简单直接,直接调用SetWindowPos()函数将子窗口显示到预定的位置即可。
QT中,直接使用move和resize对窗口定位是没有效果的。需要先将子窗口设位非窗口模式。之后再将窗口移到理想位置。
退出全屏时,调用showNormal(),再调setWindowFlags(Qt::SubWindow)。
这有两个问题:1)showNormal()也是只对顶级窗口有效。2)可以考虑先调用showNormal()将窗口设为原来大小,在将窗口设为子窗口模式。但这样窗口回到父窗口之中也不会显示原来的大小。
Qt全屏显示函数 showFullScreen()
Qt最大化显示函数 showMaximized()
Qt最小化显示函数 showMinimized()
Qt固定尺寸显示函数 resize(x,y)
Qt设置最大尺寸函数 setMaximumSize(w,h)
Qt设置最小尺寸函数 setMinimumSize(w,h)
全屏显示:
VideoWidget->setWindowFlags (Qt::Window);
VideoWidget->showFullScreen ();
退出全屏时:
VideoWidget->setWindowFlags (Qt::SubWindow);
VideoWidget->showNormal ();
//播放窗口全屏
bool HIK_Record::frameFullScreen()
{
//判断窗口当前状态,在选择是全屏还是退出全屏
if(ui->frame->isFullScreen()){
ui->frame->setWindowFlags(Qt::SubWindow);
ui->frame->showNormal();
}else{
ui->frame->setWindowFlags(Qt::Window);
ui->frame->showFullScreen();
}
return true;
}
事件过滤器
http://blog.csdn.net/jh1513/article/details/53311084
鼠标时间的捕获
http://blog.csdn.net/jh1513/article/details/53311122
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。