Как преобразовать положение мыши в номер строки? - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь преобразовать положение мыши (mouseEvent-> pos ()) в номер строки.

В простых словах, как установка точки останова в Visual C ++, нажав на левую сторону , Поэтому я хочу получить номер строки, по которой была нажата мышь, и выполнить doSomething () в этой строке.

Я не уверен, что смог объяснить это четко, но дайте знать, если не можете. нужна помощь. Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 27 февраля 2020

Извините, если я не смог объяснить это хорошо, но я нашел решение. Спасибо за попытку, хотя.

Вот решение,

    bool ViewScriptEditor::eventFilter(QObject *watched, QEvent *event)
    {
        bool bReturn = false;
        do
        {
            if (event->type() == QEvent::MouseButtonPress)
            {       
                QMouseEvent* mouseEvent = static_cast<QMouseEvent*> (event);
                QPointF swipe_startPoint = mouseEvent->pos();        
                QTextDocument *pDoc = document();
                if (!pDoc)
                    break;

                QTextBlock block = pDoc->findBlock((int)swipe_startPoint.ry());

                int lines = block.blockNumber();// +1;

                emit this->signalUpdateYourFunction(lines);

                //repaint();

            }
        } while (false);

        return bReturn;
    }
0 голосов
/ 26 февраля 2020

Я не совсем понимаю ваш вопрос.

Может быть, вы могли бы попытаться переопределить mouseReleaseEvent (QMouseEvent * Event) и сделать что-то подобное:

QRect   m_WidgetRect = UrWidget.rect();

X = Event->x();
Y = Event->y();

if (X >= m_WidgetRect.x() && X <= m_WidgetRect.x() + m_WidgetRect.width()) {
    if (Y >= m_WidgetRect.y() && Y <= m_WidgetRect.y() m_WidgetRect.height(){
        Do something;
    }
}
...