我正在Qt应用程序中绘制线条和点,并且遇到了QPainter中的缩放错误。我的线工作得很好,但是尽管笔设置为“美容”,但点会受到某些缩放比例的变换的影响。最让我困扰的是似乎只有一个轴(x轴)受到了影响。否则,我可以将其归结为转换/矩阵代码中的一些浮点精度问题。
Qt版本:嵌入式Qt 4.8 ,台式机Qt 5.4 ,台式机 Qt 5.6 LTS
以下一些渲染图实际上应该看起来都一样(如最左边的渲染图):
我有一个从QWidget派生的RenderArea,它简单地绘制了上面的图像之一。 RenderArea只需在main()中实例化并显示。该代码很简单,因此这里是相关的绘画代码:
<b-navbar toggleable="md" variant="light" type="light">
<b-navbar-toggle target="nav_collapse"></b-navbar-toggle>
<b-collapse is-nav id="nav_collapse">
<b-navbar-nav vertical class="bd-sidebar">
<div>
<b-nav-form>
<b-input-group>
<b-form-input v-model={this.keyword} placeholder="Search by keyword..."></b-form-input>
<b-input-group-append>
<b-btn on-click={this.clearModel} variant="secondary">Clear</b-btn>
</b-input-group-append>
</b-input-group>
</b-nav-form>
<WikiNavItem contents={this.availableContents} layer={0} classes={this.classes} />
</div>
</b-navbar-nav>
</b-collapse>
</b-navbar>
该示例基于Qt随附的basicdrawing示例,但我将所有内容都剥离了下来以突出问题。
答案 0 :(得分:1)
要结束本主题,我想添加对另一个stackoverflow问题的引用: Why does QPainter::drawPoint draw a horizontal line segment?
这似乎是Qt中的错误,该错误已在此处提交: QPainter::drawPoints draws line segments instead of points
正如评论中指出的那样,可以通过编写自己的绘图点代码,修补Qt,绘制图像而不是点或使用drawEllipse来克服此错误。