C++ Qt屏幕分辨率启动屏幕

C++ Qt屏幕分辨率启动屏幕,c++,qt,splash-screen,screen-resolution,qpixmap,C++,Qt,Splash Screen,Screen Resolution,Qpixmap,我用splash.showFullScreen()显示了一个闪屏图像,但它不会根据屏幕分辨率重新调整大小,因此它要么平铺显示,要么变大,具体取决于显示器。我已经尝试了我能想到的一切,但没有任何效果。这听起来可能是个愚蠢的问题,但我找不到答案,所以如果有人能帮我解决这个问题的话?如果有区别,我会使用名为pixmap的QPixmap作为飞溅图像。顺便说一句,我希望将图像拉伸到屏幕分辨率。如果使用a显示图像,请确保标签的布局将使其填充整个父窗口小部件,并设置标签以使用缩放其内容。您应该使用缩放将pix

我用splash.showFullScreen()显示了一个闪屏图像,但它不会根据屏幕分辨率重新调整大小,因此它要么平铺显示,要么变大,具体取决于显示器。我已经尝试了我能想到的一切,但没有任何效果。这听起来可能是个愚蠢的问题,但我找不到答案,所以如果有人能帮我解决这个问题的话?如果有区别,我会使用名为pixmap的QPixmap作为飞溅图像。顺便说一句,我希望将图像拉伸到屏幕分辨率。

如果使用a显示图像,请确保标签的布局将使其填充整个父窗口小部件,并设置标签以使用缩放其内容。

您应该使用缩放将pixmap缩放到屏幕大小。您可以通过调用获取屏幕分辨率。桌面小部件可以通过以下方式获得

您可以尝试以下方法:

QDesktopWidget* desktopWidget = qApp->desktop();
QRect screenGeometry = desktopWidget->screenGeometry();
int screenWidth = screenGeometry.width();
int screenHeight = screenGeometry.height();
QPixmap pixmapForSplash = yourPixmap.scaled(screenWidth, screenHeight);
QSplashScreen splashScreen(pixmapForSplash);
(很抱歉,我无法检查这一点,因为我在这台计算机上没有开发环境…我希望它是正确的。)

我认为您应该根据可用桌面几何体的大小调用启动屏幕的方法,您可以使用该方法获得。
QApplication::desktop()
函数用于获取
QDesktopWidget
的实例。
slpashsscreen.resize(QApplication::desktop()->availablegeometry().size())

您能提供示例图像吗?原始图像和正在显示的图像?是否要保持图像的纵横比?或者你想把它拉伸到窗口的大小?我不在乎它是否被拉伸,只要它不是平铺的或者在屏幕外面。我使用QSplashScreen,如果你能帮助我的话。我从来没有使用过
QSplashScreen
,但它看起来只是有一些方便的特性,可以用于典型的闪屏行为。它仍然是一个
QWidget
,不过我想说的是,只需添加一个布局,然后向它添加一个
QLabel
。然后在标签中设置pixmap,并将标签设置为缩放其内容。这听起来不错。你能更详细地解释一下如何为像我这样愚蠢的人使用它吗?应该不需要查询桌面屏幕几何图形。使用
showFullScreen()
显示
qsplashsScreen
已将
qsplashsScreen
小部件的大小设置为屏幕大小。不必查询桌面屏幕的几何图形。使用
showFullScreen()
显示
qsplashsScreen
已经将
qsplashsScreen
小部件的大小设置为屏幕大小。它应该是pixmap。缩放(QApplication::desktop()->availablegeometry().size())以正常调整大小并不总是有效,实际上这取决于您的显示管理器,如果您的linux桌面环境有限,那么
resize
无法实现此目的,在这种情况下
QDesktopWidget::availableGeometry
有效。。