我有一个使用splash.showFullScreen()显示的启动画面图像,但它没有根据屏幕分辨率调整大小,因此根据显示情况,它会平铺或变大。我已经尝试了所有我能想到但没有任何作用的东西。这可能听起来像一个愚蠢的问题,它可能是但我找不到答案,所以如果有任何可以帮我这个?如果它有所不同,我使用名为pixmap的QPixmap作为启动图像。顺便说一下,我希望将图像拉伸到屏幕分辨率。
答案 0 :(得分:8)
您应该使用QPixmap::scaled()将像素图缩放到屏幕大小。您可以致电QDesktopWidget::screenGeometry()获取屏幕分辨率。桌面小部件可以通过QApplication::desktop()获得。
您可以尝试这样的事情:
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);
(对不起,我无法检查这个,因为我在这台电脑上没有开发环境......我希望它是正确的。)
答案 1 :(得分:2)
我认为您应该根据可以使用resize()
方法获得的可用桌面几何体的大小为您的启动画面调用QDesktopWidget::availableGeometry
方法。 QApplication::desktop()
函数用于获取QDesktopWidget
的实例。
slpashScreen.resize(QApplication::desktop()->avaiableGeometry().size());
答案 2 :(得分:1)
如果使用QLabel显示图像,请确保标签位于布局中,以使其填充整个父窗口小部件并设置标签以使用setScaledContents(true)缩放其内容。