我是 Qt 的新手,我正在尝试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) 给了我完全不同的结果。
它看起来不像 Qt5 遵循它自己的官方文档中描述的规则。但是,有一个新的QPainter::Qt4CompatiblePainting
渲染提示。如果我设置它,它确实给了我与 Qt4 相同的结果。
所以我的问题是:
- 新的绘画规则实际上是什么?
- 这些新规则的文档在哪里?
- 为什么我的图像右下角的“X”在 Qt5 中不是对称的?