我試圖創建一個基於QPixmaps的進程管理器。這些像素圖通過20Hz的定時器回調進行更新,因此看起來像是在旋轉。Qt Pixmap操作
下面是我當前窗口的屏幕截圖。
Pixmap screenshot http://i47.tinypic.com/y5g4.png
的象素圖是一個二維陣列,[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中可能嗎?或者也許你會對替代解決方案有一些建議?
在此先感謝。
嗨,我用你的建議,並得到了部分解決方案。請查看我更新的問題。最好的祝福。 –
那麼,另一種方法是使用[剪輯路徑](http://doc.qt.digia.com/qt/qpainter.html#setClipPath)或[剪輯區域](http:// doc。 qt.digia.com/qt/qpainter.html#setClipRegion)來遮蓋綠色部分,以白色繪製文本,然後遮住黑色部分並以黑色繪製文本。 – user1118321