Я пытаюсь нарисовать прозрачный файл PNG внутри QWidget. Проблема в том, что я получаю разные результаты на Windows и Linux.
Я загрузил изображение , скриншот Windows и скриншот Linux . Разницу можно легко увидеть.
Код, который я использовал для тестирования: -
class TestWidget: public QWidget {
public:
TestWidget(const char* imagePath)
{
m_pixmap = QPixmap(imagePath);
setStyleSheet("background-color: black");
}
protected:
virtual void paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.drawPixmap(QPoint(0,0), m_pixmap);
}
QPixmap m_pixmap;
};
И основная функция выглядит так:
TestWidget* testWidget = new TestWidget(imagePath);
testWidget->setGeometry(0, 10, 1024, 1024);
testWidget->show();
Я использую Qt 4.5.1 / 4.7.2, Windows XP и CentOS 5.5.
Есть идеи, в чем может быть проблема?
Edit:
Для уточнения выбранного ответа мне пришлось использовать QImage с 24-битным форматом (QImage :: Format_ARGB8565_Premultiplied).