5

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

4

3 回答 3

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);

(对不起,这个我不能查,因为我这台电脑上没有开发环境……希望是正确的。)

于 2011-11-19T08:12:18.310 回答
2

我认为您应该resize()根据可以使用方法获得的可用桌面几何形状的大小来调用启动屏幕的QDesktopWidget::availableGeometry方法。该QApplication::desktop()函数用于获取QDesktopWidget. slpashScreen.resize(QApplication::desktop()->avaiableGeometry().size());

于 2011-11-19T08:22:08.603 回答
1

如果您使用QLabel来显示图像,请确保标签位于将导致其填充整个父窗口小部件的布局中,并使用setScaledContents(true)设置标签以缩放其内容。

于 2011-11-19T08:06:10.707 回答