Rysowanie myszką w Qt

0

Witam,
chciałbym się dowiedzieć w jaki sposób mogę napisać program typu paint w Qt.
Tzn. chodzi mi przeważnie o to że jak się przeciąga kursorem po QGrpahicsView to zostawia jakiś ślad.
Utknąłem na samym wykrywaniu myszki, niestety nie wiem jak sprawdzić czy np. lewy guzik został wciśnięty.
Chciałbym aby ktoś mi napisał jak to zrobić.
Z góry dziękuje za pomoc.

0

Nie będzie to pełna odpowiedź z mojej strony ( jak znajdę chwilkę to opisze co i jak bo sam zabieram się za parę dni za coś podobnego :) ) ale z tego co pamiętam to w programach przykładowych dostarczonych z całym pakietem QT ( QT Creator etc. ) jest aplikacja przykładowa i chyba wystarczy w kod zajrzeć. ( Ręki sobie uciąć nie dam ale wydaje mi się ze jakieś 2 miesiące temu widziałem tam coś takiego )

Życzę powodzenia , może znajdzie Pan odpowiedź zanim ja zacznę jej szukać :)

0

Ano w przykladach sa pomocne funkcje np, znalazlem cos takiego

void GLWidget::mousePressEvent(QMouseEvent *event)
{
    lastPos = event->pos();
}
//! [9]

//! [10]
void GLWidget::mouseMoveEvent(QMouseEvent *event)
{
    int dx = event->x() - lastPos.x();
    int dy = event->y() - lastPos.y();

    if (event->buttons() & Qt::LeftButton) {
        setXRotation(xRot + 8 * dy);
        setYRotation(yRot + 8 * dx);
    } else if (event->buttons() & Qt::RightButton) {
        setXRotation(xRot + 8 * dy);
        setZRotation(zRot + 8 * dx);
    }
    lastPos = event->pos();
}

Tutaj akurat przy trzymaniu klawisza jest obrot kamery w openGL, ale idea ta sama. Dalej powienes dac rade.

1 użytkowników online, w tym zalogowanych: 0, gości: 1