我正在将嵌入式Qt4中的应用程序移植到Qt5。因此,我需要以下表达式的等效项:
QScreen::instance()->pixelFormat()
QScreen不再具有静态instance()
功能,也不提供pixelFormat()
。
所以基本上我需要确定屏幕的像素格式。我需要它作为QImage
的构造函数的第二个参数。
答案 0 :(得分:0)
如果以下解决方法无法满足您的需求,请使用:
QPlatformScreen * QScreen::handle() const
。
解决方法:强>
也许您可以使用QScreen::depth
,然后将其值与正确的QImage::format
匹配:
QImage::Format ConvertDepthToFormat(int depth)
{
QImage::Format format = QImage::Format_Invalid;
switch (depth)
{
case 16:
format = QImage::Format_RGB16;
break;
case 32:
format = QImage::Format_RGB32;
break;
}
return format;
}
int main(int argc, char *argv[])
{
QGuiApplication a(argc, argv);
int depth = 0;
foreach (QScreen *screen, QGuiApplication::screens())
{
depth = screen->depth();
qDebug() << "Depth:" << depth << "-bits";
QImage::Format format = ConvertDepthToFormat(depth);
}
return a.exec();
}