我正在尝试创建一个基于 QPixmaps 的进程管理器。这些像素图通过 20Hz 的计时器回调进行更新,因此看起来它们正在旋转。
下面是我当前窗口的屏幕截图。
像素图是具有 [20][14] 个元素的二维数组。20 是时间片的数量,14 是进程状态指示器。我知道,屏幕上只显示了 13 个。
我目前正在使用画家对象和合成模式来添加 QImages 以及以下代码:
QImage textImage(mapIcon.size(), QImage::Format_ARGB32);
QImage resultImage(mapIcon.size(), QImage::Format_ARGB32);
QPainter textPainter(&textImage);
textPainter.setCompositionMode(QPainter::CompositionMode_Source);
textPainter.fillRect(mapIcon.rect(), Qt::black);
textPainter.setCompositionMode(QPainter::CompositionMode_SourceOver);
textPainter.setFont(QFont("Arial", 8, QFont::Bold));
textPainter.setPen(QPen(Qt::white));
textPainter.drawText(QRectF(0, 0, mapIcon.width(), mapIcon.height()),
Qt::AlignCenter, name);
textPainter.end();
QPainter resultPainter(&resultImage);
resultPainter.setCompositionMode(QPainter::CompositionMode_Source);
resultPainter.drawImage(0, 0, mapIcon);
resultPainter.setCompositionMode(QPainter::CompositionMode_Exclusion);
resultPainter.drawImage(0, 0, textImage);
resultPainter.setRenderHint(QPainter::SmoothPixmapTransform, true);
resultPainter.setRenderHint(QPainter::HighQualityAntialiasing, true);
runnerIcons[x][y] = QPixmap::fromImage(resultImage);
我的问题是:我不想在绿色标签上看到倒置的配色方案,我想要黑色。黑底白字还可以,但洋红色不是我最喜欢的。
这在Qt中可能吗?或者,也许你会对替代解决方案有一些建议?
提前致谢。