【发布时间】:2017-01-29 00:10:40
【问题描述】:
我的简单代码基于 Qt 标准示例“图表场景”。 MainWindow 最简单,只加载自定义场景。 UI 是在图形编辑器中制作的。 使用鼠标右键拖动和移动图形多边形工作,左键创建新项目。所以? 我必须双击项目以选择它。当我想要移动项目时,项目需要双击而不释放最后一次单击。头晕目眩。
商品代码:
BasicDiagramItem::BasicDiagramItem(QGraphicsItem *parent):
QGraphicsPolygonItem(parent)
{
drawCustomPoly();
}
void BasicDiagramItem::drawCustomPoly()
{
QPainterPath path;
customPoly << QPointF(0,50) << QPointF(50,0)
<< QPointF(0,-50) << QPointF(-50,0)
<< QPointF(0,50);
setPolygon(customPoly);
setFlag(QGraphicsItem::ItemIsMovable, true);
setFlag(QGraphicsItem::ItemIsSelectable, true);
setFlag(QGraphicsItem::ItemSendsGeometryChanges, true);
//setFlag(QGraphicsItem::ItemClipsToShape,true); //testowe
}
void BasicDiagramItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
QGraphicsPolygonItem::mouseMoveEvent(event);
}
场景代码:
DiagramScene::DiagramScene(QObject *parent):
QGraphicsScene(parent)
{
}
void DiagramScene::mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent)
{
if(mouseEvent->button() != Qt::RightButton) return;
BasicDiagramItem *item;
item = new BasicDiagramItem();
//item->setBrush()
addItem(item);
item->setPos(mouseEvent->scenePos());
QGraphicsScene::mousePressEvent(mouseEvent);
}
void DiagramScene::mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent)
{
QGraphicsScene::mouseMoveEvent(mouseEvent);
}
void DiagramScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent)
{
QGraphicsScene::mouseReleaseEvent(mouseEvent);
}
此代码与 Qt 示例相似。我只是不使用模式来创建不同的对象,不使用自定义菜单,也不绘制箭头。
那么,我做错了什么?为什么应用会出现双击问题?
【问题讨论】:
-
您有什么想在这里问的吗?
-
谢谢,我忘了直接写问题。在我看来,我的连接错误运行=有关此的问题。现在我编辑帖子:)