QT c++绘制点 qpainter qgraphicscene

发布于 2024-09-17 06:59:50 字数 141 浏览 9 评论 0原文

大家好,我是 qt 新手,在绘制单个点时遇到困难。

我有一个大的qMainWindow,它最终调用QgraphicsScene,在它的内部我需要绘制一个点,一个小像素,这就是我想要的,我想使用QPainter,但我在实例化它时遇到了麻烦。有什么想法吗?

Hell-o all, Im new to qt and I am having trouble drawing one single point.

I have a big qMainWindow that eventually calls a QgraphicsScene and inside of it I need to draw a single point, one little pixel, that is all I want, I want to use a QPainter but Im having trouble instantiating one. Any ideas??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦太阳 2024-09-24 06:59:50

您想要做的示例代码在这里会有很大帮助。

QPainter使用
构造指向画布对象的 QPainter 对象,然后调用painter_obj.drawPoint(x,y);。请注意,QPainter 需要在堆栈上创建,而不是堆上,以便对象的析构函数可以启动实际绘图。

文档中的示例:

void SimpleExampleWidget::paintEvent(QPaintEvent *)
 {
     QPainter painter(this);
     painter.setPen(Qt::blue);
     painter.setFont(QFont("Arial", 30));
     painter.drawText(rect(), Qt::AlignCenter, "Qt");
 }

QGraphicsScene 使用
通常,您使用 QGraphicsScene 来同时管理在视图周围浮动的大量对象。对于一个简单的绘图小部件来说,这太过分了。 iirc,QGraphicsScene 不是供 QPainter 绘画的有效画布。

相反,您创建适当类型的 QGraphicsItem(或子类),并重写 Paint 方法。当您的 QGrpahicsItem 添加到场景中时,库将向您传递一个 QPainter 对象,用于在适当的时候处理您的绘图。

Sample code of what you're trying to do would help alot here.

QPainter use:
Construct your QPainter object pointing at a canvas object, and then call painter_obj.drawPoint(x,y);. Note that the QPainter needs to be created on the stack, not the heap, so that the destructor of the object can kick off the actual drawing.

The example from the docs:

void SimpleExampleWidget::paintEvent(QPaintEvent *)
 {
     QPainter painter(this);
     painter.setPen(Qt::blue);
     painter.setFont(QFont("Arial", 30));
     painter.drawText(rect(), Qt::AlignCenter, "Qt");
 }

QGraphicsScene use:
Usually, you use a QGraphicsScene to manage a large number of objects floating around a view at the same time. This is overkill for a simple drawing widget. QGraphicsScene is not, iirc, a valid canvas for a QPainter to paint on.

Instead, you create a QGraphicsItem (or subclass) of the appropriate type, and override the paint method. When your QGrpahicsItem is added to the Scene, the library will pass you a QPainter object to use to handle your drawing when appropriate.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文