如何以编程方式将窗口从全屏切换到正常模式?

Posted

技术标签:

【中文标题】如何以编程方式将窗口从全屏切换到正常模式?【英文标题】:How to toggle a window from fullscreen to normal mode programmatically? 【发布时间】:2016-07-04 10:23:32 【问题描述】:

我正在使用此代码将窗口从正常模式切换到全屏:

void MainWindow::on_action_Fullscreen_triggered()

    showFullScreen();

当我再次触发此操作时如何返回正常模式?

【问题讨论】:

【参考方案1】:

LogicStuff 的答案几乎是完美的,但它没有考虑窗口是否被最大化。就个人而言,我总是使用这个小sn-p:

void main_window::toggle_fullscreen()

    isFullScreen() ?
        ((was_maximized_) ? showMaximized() : showNormal()), ui_->menu_view_toggle_fullscreen->setIcon(QIcon(":/fullscreen_enter")) :
        ((was_maximized_ = isMaximized()), showFullScreen(), ui_->menu_view_toggle_fullscreen->setIcon(QIcon(":/fullscreen_exit")));

由于 showFullScreen() 也会影响 isMaximized() 返回值,我们必须在全屏之前将其保存在某个位置 (was_maximized_)。

【讨论】:

【参考方案2】:

经过一分钟的 Qt 参考会议后:

void MainWindow::on_action_Fullscreen_triggered()

    isFullScreen() ? showNormal() : showFullScreen();

【讨论】:

以上是关于如何以编程方式将窗口从全屏切换到正常模式?的主要内容,如果未能解决你的问题,请参考以下文章

DX9从全屏切换到窗口给出错误的客户区

如何检测 UITableView 上的“快速触摸”以切换到/从全屏?

MPMoviePlayerController:无法从全屏切换到嵌入式

vue3:全屏解决方案

带有透明状态栏的全屏片段(以编程方式)

手机怎么退出全屏模式