Mon base de code simple sur exemple Qt 'diagramme scène'. MainWindow est le plus simplement, seulement charger la scène personnalisée. L'interface utilisateur est faite dans l'éditeur graphique. Faites glisser et déplacez graphique polygone travail avec le bouton droit de la souris, à gauche créer un nouvel élément. Alors? Je dois double-cliquer sur l'élément pour le sélectionner. Et l'article doit double-cliquer avec aucune libération dernier clic quand je veux déplacer l'article. Est complètement étourdi.Qt - glisser déplacer qgraphicitem ne fonctionne pas bien
Code article:
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);
}
Code scène:
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);
}
Ce code est par exemple ressemblance avec Qt. Je n'utilise juste que le mode pour créer un objet différent, ne pas utiliser le menu cutom et je ne dessine pas de flèches.
Alors, qu'est-ce que je fais de mal? Pourquoi les applications ont un bug avec un double-clic?
est-il une question que vous vouliez poser ici ? –
Thx, j'oublie d'écrire directement des questions Dans mon esprit j'ai des mauvaises connexions en cours d'exécution = des questions à ce sujet. dit poste :) –