Russian Qt Forum
Ноябрь 24, 2024, 05:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: не срабатывает qDebug()  (Прочитано 6279 раз)
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« : Апрель 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

 Непонимающий Непонимающий Непонимающий
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #1 : Апрель 29, 2016, 15:49 »

qDebug() от оптимизации не зависит. Если вставить туда вместо qDebug() QMessageBox::information(), то он показывается?
Записан
Bepec
Гость
« Ответ #2 : Апрель 29, 2016, 15:58 »

Ставьте точечку брякпоинта на ваш дебуг и запускаете отладку. Если не остановилось - ставим на шаг выше. И там до полного просветления.
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #3 : Апрель 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
 
Записан
Bepec
Гость
« Ответ #4 : Апрель 29, 2016, 16:24 »

И не будет. Я вам тут зачем талдычу, что View не принимает нифига, а всё идёт на ViewPort?
Правда в другой теме, но вроде всё вам же.
« Последнее редактирование: Апрель 29, 2016, 22:20 от Bepec » Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #5 : Апрель 29, 2016, 16:40 »

Я вам тут зачем талдычу...
Талдычишь неправильно.

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

Qt 5.11/4.8.7 (X11/Win)
Bepec
Гость
« Ответ #6 : Апрель 29, 2016, 17:28 »

Мб, но насколько я знаю все события кликов и нажатий View перехватываются ViewPort. Ну точнее даже не перехватываются, а Viewport занимает 100% виджета view, потому события идут только на ViewPort.
Поправьте если я неправ.
« Последнее редактирование: Апрель 29, 2016, 22:21 от Bepec » Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #7 : Апрель 29, 2016, 22:09 »

Да, события идут на viewport, но фильтрует их непосредственно view.
Записан

Qt 5.11/4.8.7 (X11/Win)
Bepec
Гость
« Ответ #8 : Апрель 29, 2016, 22:22 »

Таки да, был неправ. Спасибо за наставление.
Всё работает, всё эмититься, всё стабильно, специально проверил создав наследника.

Вопрос - у вас точка брякпоинта останавливается, или нет? Потому что "не выходит" - какой то непонятный диагноз.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #9 : Апрель 29, 2016, 22:36 »

программа в тот метод даже не заходит, вот и весь диагноз.
Записан
Bepec
Гость
« Ответ #10 : Апрель 29, 2016, 22:38 »

Ну, предоставьте код как минимум.
Тут только неверное наследование приходит на ум. Ну или глобальные фильтры.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #11 : Апрель 30, 2016, 16:53 »

А сборка то отладочная?
В pro-файле консоль добавлена?
Записан

Юра.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.102 секунд. Запросов: 23.