我的 QGraphicsView 有一些问题。我将 QGraphicsView 子类化以重新定义 paintEvent。我想使用 QGraphicsItem 绘制某种树的节点和 QGraphicsLineItem 的边缘。
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;
}
但是当我快速移动节点时, View 中会出现一些人工制品(黑线)。有什么建议摆脱那些吗?
最佳答案
请务必在 QGraphics*Item
子类的 boundingRect()
方法中包含边距。
http://qt-project.org/doc/qt-4.8/qgraphicsitem.html#boundingRect
PS:不要将逻辑放在paintEvent
方法中。此方法用于呈现内容,而不是收集 UI 字段内容或其他内容 (arbre->line1->setLine
)
关于c++ - QGraphicsView 人工制品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9859974/