Frage zu MausTracking & Werte Speichern [gelöst]
Verfasst: 13. März 2008 09:26
Guten Morgen,
folgende Situation ich hab mit dem Designer eine Oberfläche erstellt mit einem Widget im Designer hab ich MouseTracking auf true gesetzt. Jetzt möchte ich das wenn ich einfach nur die Mausbewege das MousTracking an ist... aber wenn ich die Maustaste drück soll das Tracking aus sein. Bekomm das nicht so wirklich hin. Desweiteren möchte ich sobald die Maustaste gedrückt wird und so lange sie gedrückt bleibt die Positionen der Maus in einem QVector mit Protokoliert werden. Weil ich die einzelnen Punkte dann in meinem Paint Event zeichnen möchte.
Hier mal mein Versuch/Ansatz
Wäre für Hilfestellung sehr dankbar.
Gruß
Qt-nator
folgende Situation ich hab mit dem Designer eine Oberfläche erstellt mit einem Widget im Designer hab ich MouseTracking auf true gesetzt. Jetzt möchte ich das wenn ich einfach nur die Mausbewege das MousTracking an ist... aber wenn ich die Maustaste drück soll das Tracking aus sein. Bekomm das nicht so wirklich hin. Desweiteren möchte ich sobald die Maustaste gedrückt wird und so lange sie gedrückt bleibt die Positionen der Maus in einem QVector mit Protokoliert werden. Weil ich die einzelnen Punkte dann in meinem Paint Event zeichnen möchte.
Hier mal mein Versuch/Ansatz
Code: Alles auswählen
void
ParameterToolWidget::mousePressEvent(QMouseEvent* event)
{
QString sMouseInteraction = "Maustaste wurde gedrückt.";
emit si_mousePosition(sMouseInteraction);
if (event->button() == Qt::LeftButton)
{
m_Counter = true;
}
}
void
ParameterToolWidget::mouseReleaseEvent(QMouseEvent* event)
{
QString sMouseInteraction = "Maustaste wurde gedrückt/losgelassen.";
emit si_mousePosition(sMouseInteraction);
if (event->button() == Qt::LeftButton && m_Counter)
{
m_Counter = false;
}
}
void
ParameterToolWidget::mouseDoubleClickEvent(QMouseEvent* event)
{
QString sMouseInteraction = "Maustaste wurde doppelt geklickt.";
emit si_mousePosition(sMouseInteraction);
QMessageBox::information( this, "Info", Test);
}
void
ParameterToolWidget::mouseMoveEvent(QMouseEvent* event)
{
QString sMouseInteraction;
sMouseInteraction.sprintf(" Maus Position: X: %d, Y: %d ", event->pos().x(), event->pos().y());
emit si_mousePosition(sMouseInteraction);
if(m_Counter = true)
{
QWidget::setMouseTracking(false);
}
/*
QPolygonF polygon;
double dX = event->pos().x();
double dY = event->pos().y();
if(m_Counter = true)
{
while (m_Counter = true)
{
polygon.push_back( QPointF( dX,dY));
}
}
*/
}
Gruß
Qt-nator