Russian Qt Forum

Qt => Общие вопросы => Тема начата: demaker от Апрель 29, 2016, 15:32



Название: не срабатывает qDebug()
Отправлено: demaker от Апрель 29, 2016, 15:32
Вот код
Код
C++ (Qt)
void GraphicsView::mouseDoubleClickEvent(QMouseEvent *event)
{   int a=5;
   qDebug() << a;
 
   Scene *graphicsScene = (Scene*)scene();
   QGraphicsItem *item = itemAt(event->pos());
   //redraw
   if(item != NULL){
       //delete
       QList<QGraphicsItem *> list = graphicsScene->items();
       if(!list.isEmpty()){
           int size = list.size();
           for(int i = 0; i < size; i++){
               QGraphicsItem *item = list.at(i);
               graphicsScene->removeItem(item);
           }
       }
       //draw
       CommonElement *ce = ((CommonGraphicsObject *)(item))->getModelElement();
       //QModelIndex index = ce->getModelIndex();
 
       if(!ce->children().isEmpty()){
           int size = ce->children().size();
           for(int i = 0; i < size; i++){
               CommonElement *tmp_ce = (CommonElement*)(ce->children().at(i));
               CommonGraphicsObject *cgo = tmp_ce->getGraphicsObject();
               cgo->setPos(10 + (cgo->boundingRect().width() + 5)*i,10);
               graphicsScene->addItem(cgo);
           }
       }
       qDebug()<<"EMIT!!!!";
       setScene(graphicsScene);
       qDebug()<<"EMIT!!!!";
       //Q_EMIT graphicsViewDoubleClick(index);
   }
int b=7;
qDebug() << b;
qDebug() << "qwerty";
}
 

Не срабатывает qDebug()

Вроде оптимизацию отключил - прописал в pro-файле
Код:
Q_MAKE_CXXFLAGS += -g0

 ??? ??? ???


Название: Re: не срабатывает qDebug()
Отправлено: Alex Custov от Апрель 29, 2016, 15:49
qDebug() от оптимизации не зависит. Если вставить туда вместо qDebug() QMessageBox::information(), то он показывается?


Название: Re: не срабатывает qDebug()
Отправлено: Bepec от Апрель 29, 2016, 15:58
Ставьте точечку брякпоинта на ваш дебуг и запускаете отладку. Если не остановилось - ставим на шаг выше. И там до полного просветления.


Название: Re: не срабатывает qDebug()
Отправлено: demaker от Апрель 29, 2016, 16:01
Ставьте точечку брякпоинта на ваш дебуг и запускаете отладку. Если не остановилось - ставим на шаг выше. И там до полного просветления.

Делял
Токо
Код
C++ (Qt)
void GraphicsView::mouseDoubleClickEvent(QMouseEvent *event)
{   int a=5;
   qDebug() << a; //ДАЖЕ ЭТО НЕ ВЫХОДИТ!!!!!!!!!!
 
   Scene *graphicsScene = (Scene*)scene();
   QGraphicsItem *item = itemAt(event->pos());
   //redraw
 


Название: Re: не срабатывает qDebug()
Отправлено: Bepec от Апрель 29, 2016, 16:24
И не будет. Я вам тут зачем талдычу, что View не принимает нифига, а всё идёт на ViewPort?
Правда в другой теме, но вроде всё вам же.


Название: Re: не срабатывает qDebug()
Отправлено: GreatSnake от Апрель 29, 2016, 16:40
Я вам тут зачем талдычу...
Талдычишь неправильно.

2ТС:
попробуй выставить переменную среды
Код
Bash
QT_LOGGING_RULES="*.debug=true"


Название: Re: не срабатывает qDebug()
Отправлено: Bepec от Апрель 29, 2016, 17:28
Мб, но насколько я знаю все события кликов и нажатий View перехватываются ViewPort. Ну точнее даже не перехватываются, а Viewport занимает 100% виджета view, потому события идут только на ViewPort.
Поправьте если я неправ.


Название: Re: не срабатывает qDebug()
Отправлено: GreatSnake от Апрель 29, 2016, 22:09
Да, события идут на viewport, но фильтрует их непосредственно view.


Название: Re: не срабатывает qDebug()
Отправлено: Bepec от Апрель 29, 2016, 22:22
Таки да, был неправ. Спасибо за наставление.
Всё работает, всё эмититься, всё стабильно, специально проверил создав наследника.

Вопрос - у вас точка брякпоинта останавливается, или нет? Потому что "не выходит" - какой то непонятный диагноз.


Название: Re: не срабатывает qDebug()
Отправлено: Alex Custov от Апрель 29, 2016, 22:36
программа в тот метод даже не заходит, вот и весь диагноз.


Название: Re: не срабатывает qDebug()
Отправлено: Bepec от Апрель 29, 2016, 22:38
Ну, предоставьте код как минимум.
Тут только неверное наследование приходит на ум. Ну или глобальные фильтры.


Название: Re: не срабатывает qDebug()
Отправлено: lit-uriy от Апрель 30, 2016, 16:53
А сборка то отладочная?
В pro-файле консоль добавлена?