c++ - Qt quick 2 绘画方法没有被调用

标签 c++ qt qml

我创建了一个简单的 Qt 快速应用程序,但我在使用 QQuickPaintedItem 绘图时遇到了问题。 我在 Debug模式下检查了绘画是否被调用,但没有。 无论如何,这是我的代码:

来源:

ParticleHandler::ParticleHandler(QQuickPaintedItem *parent) : QQuickPaintedItem(parent)
{
    setFlag(QQuickItem::ItemHasContents);
    particle = new Particle();
}
void ParticleHandler::paint(QPainter *painter)
{
    QPen pen = QPen(m_color);
    painter->setPen(pen);
    painter->setRenderHints(QPainter::Antialiasing, true);
    painter->drawEllipse(particle->Position.x,particle->Position.y,particle->Radius/2,particle->Radius/2);
}

标题:

ParticleHandler(QQuickPaintedItem *parent = 0);
void paint(QPainter *painter);

最佳答案

尝试设置自定义项目的宽度和高度。

import QtQuick 2.0
import Fizika 1.0
Rectangle
{
  width: 360
  height: 360
  Particle
    { 
     width: 100
     height: 100
     radius: 20
     x: 100
     y: 200
     color: "red"
    }
}

关于c++ - Qt quick 2 绘画方法没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19480209/

相关文章:

c++ - 在 Visual Studio 中测试时如何覆盖标准 C++ 函数?

c++ - 重新实现 QThread 的 start()

qt - 如何在QT虚拟键盘上按下信号键并播放声音点击轨道?

c++ - Tensorflow load graph c++ 示例中包含哪些 header ?

c++ - 在 catch block 异常中无意义地使用引用传递语法?

c++ - 如何删除 QString 的前两个字符

c++ - 是否可以列出 QQmlContext 的上下文属性名称?

qt - 如何实现点击TextField外的区域使TextField失去焦点?

c++ - 我应该如何保留指向 std::unique_ptr 的指针?

c++ - 保证大型 std::vector 的移动