首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QGraphicsView人工制品

QGraphicsView人工制品
EN

Stack Overflow用户
提问于 2012-03-25 20:04:46
回答 2查看 744关注 0票数 1

我的QGraphicsView出了点问题。我已经将QGraphicsView子类化以重新定义paintEvent。我想用QGraphicsItem表示节点,用QGraphicsLineItem表示边,画出一棵树。

代码语言:javascript
复制
void GraphicsView::paintEvent ( QPaintEvent * event ) {
if(arbre!=NULL) {
    arbre->line1->setLine(arbre->text->x(),arbre->text->y(),
                          arbre->text1->x(),arbre->text1->y());

    QGraphicsView::paintEvent(event);
    cout << "redessine" << endl;
}

}

有什么建议可以去掉这些吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-26 03:59:31

请确保在QGraphics*Item子类的boundingRect()方法中包含页边距。

http://qt-project.org/doc/qt-4.8/qgraphicsitem.html#boundingRect

PS:不要把逻辑放在paintEvent方法中。此方法用于呈现内容,而不是收集UI字段内容或其他内容(arbre->line1->setLine)

票数 1
EN

Stack Overflow用户

发布于 2015-03-02 18:30:49

除了放错位置的逻辑之外,在改变对象几何形状之前,调用QGraphicsItem::​prepareGeometryChange()。

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

https://stackoverflow.com/questions/9859974

复制
相关文章

相似问题

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