Я новичок в Qt, и я пытаюсь сделать некоторые QPainter
рисунок с помощью следующего кода теста:Qt5 QPainter псевдонимов рисунка правила с
QPixmap pixmap(20, 20);
pixmap.fill(Qt::white);
QPainter painter(&pixmap);
// Draw a rectangle (works fine in both Qt4 and Qt5)
painter.setPen(Qt::blue);
painter.drawLine(0, 0, 10, 0);
painter.drawLine(0, 0, 0, 10);
painter.drawLine(10, 0, 10, 10);
painter.drawLine(0, 10, 10, 10);
// Draw an example line from official docs (broken in Qt5)
painter.setPen(Qt::darkGreen);
painter.drawLine(2, 7, 6, 1);
// Draw an X (broken in Qt5)
painter.drawLine(13, 13, 18, 18);
painter.drawLine(13, 18, 18, 13);
Так или иначе, Qt4 (4.8.4) и Qt5 (5.0.1 , 5.0.2) дают мне совершенно разные results.
Это не похоже, что Qt5 следует за rules described in its own official docs. Однако есть новый подсказку рендера QPainter::Qt4CompatiblePainting
. Если я его установлю, это действительно даст мне тот же результат, что и в Qt4.
Так что мои вопросы:
- Каковы новые правила живописи на самом деле?
- Где находится документация для этих новых правил?
- Почему «X» в нижней правой части моего изображения не симметричен в Qt5?
Только ссылки я знаю, [это отчет об ошибке] (HTTPS: //bugreports.qt-project.org/browse/QTBUG-27500) и [связанная фиксация] (https://github.com/qtproject/qtbase/commit/7b8e10ddd02693b3d6b7a7e74d2103787f6e76ac), которая имеет немного объяснений. Документы кажутся все еще неправильными, поэтому, поэтому стоит открыть отчет об ошибках на этих страницах. – peppe