was ich versuche ist folgendes, dass wenn ich in einem Widget die Maus drücke und sie dann bewege soll der Mausbewegung nachgezeichnet werden. Des halb hab ich mich mal am Scribble Example probiert und so. Bei mir entsteht ist dann follgendes entstanden:
Code: Alles auswählen
void ParameterToolWidget::drawLineTo(const QPoint &endPoint)
{
QPainter painter(XXX);
painter.setPen(QPen(Qt::blue, 1, Qt::SolidLine, Qt::RoundCap,
Qt::RoundJoin));
painter.drawLine(m_LastPoint, endPoint);
m_LastPoint = endPoint;
}
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 ((event->buttons() & Qt::LeftButton) && m_Scribbling) drawLineTo(event->pos());
}
void
ParameterToolWidget::mousePressEvent(QMouseEvent* event)
{
QString sMouseInteraction = "Maustaste wurde gedrückt.";
emit si_mousePosition(sMouseInteraction);
if (event->button() == Qt::LeftButton)
{
m_LastPoint = event->pos();
m_Scribbling = true;
}
}
void
ParameterToolWidget::mouseReleaseEvent(QMouseEvent* event)
{
QString sMouseInteraction = "Maustaste wurde gedrückt/losgelassen.";
emit si_mousePosition(sMouseInteraction);
if (event->button() == Qt::LeftButton && m_Scribbling)
{
drawLineTo(event->pos());
m_Scribbling = false;
}
}
Code: Alles auswählen
void ScribbleArea::drawLineTo(const QPoint &endPoint)
{
QPainter painter(&image);
painter.setPen(QPen(myPenColor, myPenWidth, Qt::SolidLine, Qt::RoundCap,
Qt::RoundJoin));
painter.drawLine(lastPoint, endPoint);
modified = true;
int rad = (myPenWidth / 2) + 2;
update(QRect(lastPoint, endPoint).normalized()
.adjusted(-rad, -rad, +rad, +rad));
lastPoint = endPoint;
}
// QPainter painter(&image); //
jedenfalls ist image ein erstelltes QImage... mein Problem ist jetzt ich muss mein Widget damit ansprechen das ich im Designer erstellt habe... nur wenn ich es so eintrage bekomme ich dann Meldung das ers nicht findet...
kann mir da jemand weiter helfen???