Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
由于windows上的任务栏导致QMainWindow全屏问题_Windows_Qt_Qwidget_Qmainwindow - Fatal编程技术网

由于windows上的任务栏导致QMainWindow全屏问题

由于windows上的任务栏导致QMainWindow全屏问题,windows,qt,qwidget,qmainwindow,Windows,Qt,Qwidget,Qmainwindow,我正在尝试制作一个全屏窗口(不仅仅是最大化窗口) 如果任务栏设置为自动隐藏,则在Linux(在Ubuntu 16上测试)和windows(在windows 10上工作)上都可以正常工作。如果任务栏未设置为自动隐藏,则在全屏模式下,将在任务栏的位置显示一个白色矩形条。我假设一个全屏窗口应该能够隐藏任务栏,但在这种情况下它不会发生 我已经尝试过以下变通方法,但没有一种对我有效: QTimer::singleShot(1000, mainWindow, SLOT(showFullScreen()));

我正在尝试制作一个全屏窗口(不仅仅是最大化窗口)

如果任务栏设置为自动隐藏,则在Linux(在Ubuntu 16上测试)和windows(在windows 10上工作)上都可以正常工作。如果任务栏未设置为自动隐藏,则在全屏模式下,将在任务栏的位置显示一个白色矩形条。我假设一个全屏窗口应该能够隐藏任务栏,但在这种情况下它不会发生

我已经尝试过以下变通方法,但没有一种对我有效:

QTimer::singleShot(1000, mainWindow, SLOT(showFullScreen()));

mainWindow->setWindowState(mainWindow->windowState() ^ Qt::WindowFullScreen);

mainWindow->setWindowState(mainWindow->windowState() & ~Qt::WindowFullScreen);

mainWindow->repaint();

qApp->processEvents();

mainWindow->setGeometry(qApp->desktop()->availableGeometry());
mainWindow->updateGeometry();

是否有其他方法使QMainWindow/QWidget全屏显示,或者我需要显式隐藏任务栏?

我尝试了mainWindow->showFullScreen();它正在按你的愿望工作。它覆盖了所有区域,包括windows 10上的任务栏。@Sourabh如果任务栏未设置为自动隐藏,它对我不起作用。底部的任务栏出现了一个白色的条带。我也有这个问题<代码>主窗口->showFullScreen()不会使应用程序在任务栏上呈现。你解决过吗?没关系,我必须使用任务管理器重新启动explorer.exe,现在它可以正常工作了;它正在按你的愿望工作。它覆盖了所有区域,包括windows 10上的任务栏。@Sourabh如果任务栏未设置为自动隐藏,它对我不起作用。底部的任务栏出现了一个白色的条带。我也有这个问题<代码>主窗口->showFullScreen()不会使应用程序在任务栏上呈现。你解决过吗?没关系,我必须用任务管理器重新启动explorer.exe,现在它可以正常工作了。
QTimer::singleShot(1000, mainWindow, SLOT(showFullScreen()));

mainWindow->setWindowState(mainWindow->windowState() ^ Qt::WindowFullScreen);

mainWindow->setWindowState(mainWindow->windowState() & ~Qt::WindowFullScreen);

mainWindow->repaint();

qApp->processEvents();

mainWindow->setGeometry(qApp->desktop()->availableGeometry());
mainWindow->updateGeometry();