【发布时间】:2013-06-04 03:04:30
【问题描述】:
我是 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) 给了我完全不同的results。
Qt5 看起来并不遵循rules described in its own official docs。但是,有一个新的QPainter::Qt4CompatiblePainting 渲染提示。如果我设置它,它确实给了我与 Qt4 相同的结果。
所以我的问题是:
- 新的绘画规则究竟是什么?
- 这些新规则的文档在哪里?
- 为什么我的图片右下角的“X”在 Qt5 中不是对称的?
【问题讨论】:
-
我知道的唯一参考文献是this bugreport 和related commit,其中有一些解释。不过,文档似乎仍然是错误的,因此值得针对这些页面打开错误报告。