Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Когда уставливаю QCursor немедленно закрывается приложение
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Модель/Представление
september
Привет всем! создал программу которое по выборе по кнопке выбираешь круг или линию и рисуешь в QGraphicsView (круг рисуется по щелку мыши, а линию рисуешь мышкой). теперь я хочу что когда нарисовал круг и наводишь на него мышкой менятся курсор...
вот кусок кода
void MyScene::mousePressEvent(QGraphicsSceneMouseEvent* event)
{
    if(m_flag && event->button() == Qt::LeftButton)
    {
        QGraphicsEllipseItem* ellipse = addEllipse(event->scenePos().x(), event->scenePos().y(), 50, 50);
        ellipse->setCursor(Qt::OpenHandCursor);
        m_undertow_vertex.push_front(ellipse);
    }
    else
    {
        if(event->button() == Qt::LeftButton)
        {
            x_line = event->scenePos().x();
            y_line = event->scenePos().y();
            pm_line = addLine(x_line, y_line, event->scenePos().x(), event->scenePos().y());
            pm_ellipse_green = addEllipse(event->scenePos().x() - 4, event->scenePos().y() - 4
                                          , 8, 8, QPen(Qt::green), QBrush(Qt::green));
            QGraphicsEllipseItem* ellipse_red = addEllipse(event->scenePos().x() - 4, event->scenePos().y() - 4
                                        , 8, 8, QPen(Qt::red), QBrush(Qt::red));
            QPair<QGraphicsLineItem*, red_green> tmp = { pm_line, { ellipse_red, pm_ellipse_green } };
            m_undertow_arc.push_front(tmp);
        }
    }
}


все вроде получается, но когда выбираешь рисовать линию , программа немедленно закрывается...и еще заметил что если убрать метод mouseMoveEvent , то программа работает норм...почему программа ведет себя так? как это исправить ?
Litkevich Yuriy
Цитата(Гость_september_* @ 8.9.2013, 20:25) *
наводишь на него мышкой менятся курсор
а используешь
Цитата(Гость_september_* @ 8.9.2013, 20:25) *
mousePressEvent(QGraphicsSceneMouseEvent* event)
т.е. нажатия клавиши мыши
а по идее нужно использовать
bool event ( QEvent * event ) [virtual protected]
а в нём обрабатывать события:
QEvent::HoverEnter
QEvent::HoverLeave

либо QGraphicsSceneHoverEvent
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.