qt - 如何在QGraphicsItem中绘制一半的饼图

标签 qt qgraphicsview

我正在尝试在 qGraphicsview 框架中绘制这样的一半馅饼。 enter image description here

我尝试画两个馅饼,其中一个的颜色是透明的,但它不起作用,我决定在这里询问。

因为不太了解QPainterPath,所以画圆弧和饼图没成功!

任何答案或想法将不胜感激。

最佳答案

我同意 Neox 的观点,这张图片并不是真正的馅饼;)。如果您想要一个实际的饼图(即:圆的一部分),您可以使用画家的内置方法:

QRect rect( -radius, -radius, radius*2, radius*2);
painter->drawPie( rect, startAngle*16, span*16 );

整数半径
显然,你的馅饼的半径。

int startAngle
你的馅饼开始的地方,例如与正 X 轴偏移 20°

整数跨度
弧延伸的度数,例如跨度 = 320° 的饼图将在与 X 正轴总共 340° 或 -20° 处结束。 (参见 QPainter 文档了解神奇的 *16)

这应该会给你一个不错的 PacMan ^^ - 或者你可以尝试一下这些值。

现在,在没有更多详细信息的情况下,您需要弄清楚该片段的实际放置位置。当然,它会出现在某些图形项目的绘制方法中,例如自定义 QGraphicsItem,因此使用作为此方法的输入的画家。这实际上取决于您对小部件和其他内容的设置...

Qt 实际上有一个非常棒的文档,所以一定要先检查一下:(我自己只花了两周时间,但你可以通过文档了解很多)

QGraphicsItem:http://qt-project.org/doc/qt-4.8/qgraphicsitem.html
QPainter:http://qt-project.org/doc/qt-4.8/qpainter.html

干杯, 路易丝

PS:第一个答案,耶!

关于qt - 如何在QGraphicsItem中绘制一半的饼图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8992830/

相关文章:

python - 奇怪的发射行为。执行emit时无法调用slot

c++ - Qt 没有匹配函数供调用

c++ - QPainterPath 形状 union (单笔划)

c++ - 使用Qt和c++开发游戏

qt - 在带有 QGLWidget 视口(viewport)的 QGraphicsView 上具有透明背景的小部件

qt - 获取QScrollArea绝对大小

c++ - doxygen 外部链接到 qt 类

linux - 我应该如何在 Qt 中编写窗口管理器?

c++ - Qt QGraphicsView单元测试——如何让鼠标保持在 "pressed"状态?

c++ - QGraphicsScene::removeItem: item场景和这个场景不一样