当窗口处于全屏模式时,Qt 连接不起作用
Posted
技术标签:
【中文标题】当窗口处于全屏模式时,Qt 连接不起作用【英文标题】:Qt connect are not working when window is in fullscreen mode 【发布时间】:2016-12-04 01:59:31 【问题描述】:我遇到了一些连接问题:
QAction* fs = new QAction(this);
fs->setShortcut(Qt::Key_F);
connect(fs, &QAction::triggered, this, &MainWindow::fullscreen);
menuBar()->addAction(fs);
而全屏功能是:
if(!fullscreenMode)
mouseMoved=time(0);
this->menuBar()->hide();
this->showFullScreen();
fullscreenMode=true;
else
this->menuBar()->show();
timeBar->show();
controlBar->show();
this->showNormal();
fullscreenMode=false;
timeBar->visibilityChanged(true);
controlBar->visibilityChanged(true);
我无法使用快捷方式(F 按钮)返回正常模式,但我可以使用相同功能的双击来实现。我的错在哪里?
【问题讨论】:
【参考方案1】:答案是:
QShortcut* fullscreenShortcut = new QShortcut(QKeySequence(Qt::Key_F),this,SLOT(fullscreen()));
【讨论】:
【参考方案2】:主窗口创建时是否初始化了“fullscreenMode”?
这里有两个问题:
未定义的 fullscreenMode 导致意外结果。
QAction 触发传递一个布尔参数,如果你的函数 - “全屏”也有一个参数,“全屏”将捕获从 trigger() 传递的这个参数。另外,如果动作是可检查的,则布尔参数在动作被选中时为真,如果动作未被选中,则布尔参数为假。
希望这些能有所帮助。
【讨论】:
感谢您的关注。嗯,在 MainWindow 构造函数中已经初始化了 fullscreenMode,而我的“全屏”函数没有参数。以上是关于当窗口处于全屏模式时,Qt 连接不起作用的主要内容,如果未能解决你的问题,请参考以下文章
当应用程序处于后台并且网络连接丢失时,位置更新计时器不起作用?
当手机处于睡眠模式时,为什么用于来电的广播接收器在棒棒糖上不起作用
当应用程序使用 ios 8 在前台时,调度程序 UILocalNotification 不起作用