Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.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
C++ Qt总是说我的屏幕大小是0_C++_Qt - Fatal编程技术网

C++ Qt总是说我的屏幕大小是0

C++ Qt总是说我的屏幕大小是0,c++,qt,C++,Qt,我有一个应用程序,我正试图使全屏。我在其他帖子上看到,如果我在代码中做了什么,它应该会给出屏幕的大小 double MainSpace::getScopeX(paintBox* window){ QDesktopWidget temp; QRect size = temp.screenGeometry(window); return size.width() * window->scale; } 我有一个窗口,它的值会改变(比例),所以我传递了一个指针 然后我使用QDeskt

我有一个应用程序,我正试图使全屏。我在其他帖子上看到,如果我在代码中做了什么,它应该会给出屏幕的大小

double MainSpace::getScopeX(paintBox* window){
  QDesktopWidget temp;
  QRect size = temp.screenGeometry(window);
  return size.width() * window->scale;
}
我有一个窗口,它的值会改变(比例),所以我传递了一个指针


然后我使用QDesktopWidget::screenGeometry()获取窗口的屏幕几何体,但是width()和height()方法总是返回0!我想屏幕可能还不存在,所以它可能返回0,因为那里没有任何内容,但是screenCount()成功返回1,所以我不知道发生了什么。为什么我的方法总是返回0?

这要简单得多。全屏是一面旗帜。您可以按如下方式进行设置:

my_widget->setWindowState(Qt::WindowFullScreen);

这要容易得多。全屏是一面旗帜。您可以按如下方式进行设置:

my_widget->setWindowState(Qt::WindowFullScreen);

只需调用
showFullScreen()
而不是
show()
,即可在全屏模式下打开主窗口:

#include "MainWindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.showFullScreen();

    return a.exec();
}
#包括“MainWindow.h”
#包括
int main(int argc,char*argv[])
{
质量保证申请a(argc、argv);
主窗口w;
w、 全屏显示();
返回a.exec();
}

无需手动操作。

您只需调用
showFullScreen()
以全屏模式打开主窗口即可:

#include "MainWindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.showFullScreen();

    return a.exec();
}
#包括“MainWindow.h”
#包括
int main(int argc,char*argv[])
{
质量保证申请a(argc、argv);
主窗口w;
w、 全屏显示();
返回a.exec();
}

无需手动操作。

您是否确定
window->scale!=0
?另外,请记住QDesktopWidget需要操作系统特定的调用才能工作。QDesktopWidget支持您的操作系统吗?另外,使用
QApplication::desktop()
而不是实例化您自己的实例。在internet上发布问题之前,您应该阅读文档:您是否肯定
window->scale!=0
?另外,请记住QDesktopWidget需要操作系统特定的调用才能工作。QDesktopWidget支持您的操作系统吗?另外,使用
QApplication::desktop()
而不是实例化您自己的实例。在internet上发布问题之前,您应该阅读文档: