首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QPainter更新数据

QPainter更新数据
EN

Stack Overflow用户
提问于 2016-05-15 23:49:45
回答 1查看 2.8K关注 0票数 0

我在更新绘图方面有问题。我有两个文件: mainwindow.cpp和drawwidget.cpp。在主窗口中,我加载一个带有x,y点参数的文件。当我点击一个按钮时,我会选择其中的几个,然后将它传递给draw小部件来绘制这个点。

为了了解它是如何工作的,我暂时画一个椭圆,并将"p“乘以大小。当我单击一个按钮时,"p“会更改值(我用QMessageBox打印了它及其不同的值),但是省略号仍然是相同的大小。我做错了什么?

代码语言:javascript
复制
DrawWidget::DrawWidget(QWidget *parent) :
    QWidget(parent)
{
    p=30;
}
void DrawWidget::paintEvent(QPaintEvent *)
{
    QStyleOption opt;
    opt.init(this);
    QPainter painter(this);
    style()->drawPrimitive(QStyle::PE_Widget, &opt, &painter, this);
    painter.setRenderHint(QPainter::Antialiasing);
    paint(painter);
}
void DrawWidget::paint(QPainter &painter)
{
    painter.drawEllipse( QRect( 1*p-5, 5*p-5, 10, 10 ) );
}
void DrawWidget::handleData(sPunkt *&Tab_pkt)
{
    p=Array[0].x;
    update();
}
EN

回答 1

Stack Overflow用户

发布于 2016-05-16 00:30:50

您需要对小部件进行update(),以触发QPaintEvent并跟踪对paintEvent()的调用。

画图事件是重新绘制小部件的全部或部分的请求。发生这种情况可能有以下原因之一:

  • 调用了repaint()或update(),
  • 这个小部件被遮住了,现在已经被发现,或者
  • 还有很多其他原因。

见docs:QWidget::paintEvent()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37244881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档