Название: Когда уставливаю QCursor немедленно закрывается приложение Отправлено: september от Сентябрь 08, 2013, 18:19 Привет всем! создал программу которое по выборе по кнопке выбираешь круг или линию и рисуешь в 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); } } } void MyScene::mouseMoveEvent(QGraphicsSceneMouseEvent* event) { if(!m_flag) { pm_line->setLine(x_line, y_line, event->scenePos().x(), event->scenePos().y()); pm_ellipse_green->setRect(event->scenePos().x() - 4, event->scenePos().y() - 4, 8, 8); } } все вроде получается, но когда выбираешь рисовать линию , программа немедленно закрывается...и еще заметил что если убрать метод mouseMoveEvent , то программа работает норм...почему программа ведет себя так? как это исправить ? Название: Re: Когда уставливаю QCursor немедленно закрывается приложение Отправлено: Nidxogg от Сентябрь 08, 2013, 18:44 Под pm_line выделена память?
Название: Re: Когда уставливаю QCursor немедленно закрывается приложение Отправлено: september от Сентябрь 08, 2013, 19:19 нет ! и в чем это поможет ?
Название: Re: Когда уставливаю QCursor немедленно закрывается приложение Отправлено: september от Сентябрь 08, 2013, 19:34 выделил память под pm_line и pm_ellipse_green, теперь появилось другая проблема ... после рисования круга , линия не некорректно рисуется (т.е нажал на кнопку мыши зафиксировал первую точку линию , потом перемещаешь мышкой , отпускаешь кнопку мышкы линия досихпор продолжает двигаться за мышкой ) почему это происходит ? как это исправить ?
Название: Re: Когда уставливаю QCursor немедленно закрывается приложение Отправлено: Nidxogg от Сентябрь 08, 2013, 19:36 mouseReleaseEvent
Название: Re: Когда уставливаю QCursor немедленно закрывается приложение Отправлено: september от Сентябрь 08, 2013, 19:48 не получается...перед рисованием кругом линия норм рисуется , после рисования круга нет...
Название: Re: Когда уставливаю QCursor немедленно закрывается приложение Отправлено: Nidxogg от Сентябрь 08, 2013, 19:50 qt diagram scene example посмотри
Название: Re: Когда уставливаю QCursor немедленно закрывается приложение Отправлено: Alex Custov от Сентябрь 08, 2013, 20:58 нет ! и в чем это поможет ? то есть что такое обращение по неинициализированному указателю ты не понимаешь? Сперва нужно выучить С++. |