Qt屏幕分辨率飞溅屏幕

时间:2011-11-19 07:00:27

标签: c++ qt splash-screen screen-resolution qpixmap

我有一个使用splash.showFullScreen()显示的启动画面图像,但它没有根据屏幕分辨率调整大小,因此根据显示情况,它会平铺或变大。我已经尝试了所有我能想到但没有任何作用的东西。这可能听起来像一个愚蠢的问题,它可能是但我找不到答案,所以如果有任何可以帮我这个?如果它有所不同,我使用名为pixmap的QPixmap作为启动图像。顺便说一下,我希望将图像拉伸到屏幕分辨率。

3 个答案:

答案 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)缩放其内容。