jjzjj

QPainterPath

全部标签

c++ - 检查 QPainterPath 中是否存在点

我有一个应用程序,我在场景中放置了多条曲线。我一直在寻找一种简单的方法来检测用户是否按下了线路。当我绘制多条线时,boundingRect()和intersects()太不准确了。所以我做了这个功能,除了线条是垂直的,它就像一个梦。selectionMargin是由用户设置的全局变量(默认值=0.5)。它根据选择检查的准确度调整边距。名称基于每个子线的线性函数,y=ax+b。Pos是来自mousePressEvent的位置。boolGraphApp::pointInPath(QPainterPathpath,QPointFpos){qrealposY=pos.y();qrealposX

c++ - QPainter 中的文本比 QPainterPath 中的文本好得多

我想使用QPainter绘制文本,我想首先使用QPainterPath(因为最终我想以各种方式旋转文本)。但是,我发现QPainterPath生成的文本比QPainter生成的文本要丑得多。以下代码:voidMyWidget::paintEvent(QPaintEvent*/*event*/){QFontfont;font.setStyleHint(QFont::Times,QFont::PreferAntialias);font.setPointSize(30);QPainterpainter;painter.begin(this);painter.setRenderHint(QPa

c++ - 如何使用 QPainter 或 QPainterPath 使用一个形状或一组连接的形状在 Qt 中绘制自定义形状

如何绘制像眼泪一样的形状?我需要在不使用多个形状(椭圆和多边形)的情况下进行绘制,因为QPen将为每个形状绘制。我需要连接形状以创建一个新形状,或者告诉QT连接两个形状的边界,如下所示: 最佳答案 如果您要绘制的形状可以表示为其他形状的分层,就像您链接到的图像一样,这很容易做到:首先我们需要构建一个QPainterPath来表示形状的外边缘。我们通过将更简单的形状分层来构建它;对于您的示例,我们需要一个圆形和一个正方形。注意QPainterPath::setFillRule(Qt::WindingFill)的使用:这将在以后影响绘制

c++ - 如何为 QPainterPath 子路径着色不同?

正如标题所暗示的,我正在寻找一种方法来为QPainterPath的子路径着色,将不同颜色应用于QGraphicsPathItem,或者简单地使用QGradientQPen沿PathItem更改颜色。最终,我试图找到正确的解决方案,这将使我能够明显地绘制一条线,该线会根据外部变量改变颜色。我正在使用QGraphicsScene绘制所有内容。我当前的解决方案是创建多个QGraphicsPathItems,每个QGraphicsPathItems都使用各自的QPen着色不同。当我获取数据时,我填充与那些PathItems关联的PainterPath。这为我提供了所需的彩色线条,但线条明显断开