Название: Отловить текст Action в меню. Отправлено: Serega от Июнь 15, 2015, 13:11 Контекстное меню:
Код Если выбрать пункт меню, проблем нет. Если открыть меню и закрыть, вылетает программа. Как правильно? Название: Re: Отловить текст Action в меню. Отправлено: Hellraiser от Июнь 15, 2015, 13:27 1. Проверять возвращаемое значение на 0 (или NULL, как больше нравится).
2. Выучить С/C++ Название: Re: Отловить текст Action в меню. Отправлено: Пантер от Июнь 15, 2015, 13:29 1. Проверять возвращаемое значение на 0 (или NULL, как больше нравится). nullptr же.Название: Re: Отловить текст Action в меню. Отправлено: Hellraiser от Июнь 15, 2015, 13:32 nullptr только в 11-ом стандарте. Но как вариант - не исключается.
Название: Re: Отловить текст Action в меню. Отправлено: Igors от Июнь 15, 2015, 13:52 nullptr только в 11-ом стандарте. А чем эстетов просто ноль не устроил? :)Название: Re: Отловить текст Action в меню. Отправлено: Пантер от Июнь 15, 2015, 13:56 nullptr только в 11-ом стандарте. А чем эстетов просто ноль не устроил? :)Название: Re: Отловить текст Action в меню. Отправлено: Serega от Июнь 15, 2015, 13:58 Извините конечно, но что собственно проверять?
Если это: if(!textAction->text().isNull()); Ну так проверял вылетает при проверке. Иначе бы не спрашивал. QAction не знает такой проверки. Что еще могу прверить на isNull? Название: Re: Отловить текст Action в меню. Отправлено: Hellraiser от Июнь 15, 2015, 14:06 Разве не ясно было сказано: проверять возвращаемое значение. А не пытаться вызвать метод для несуществующего объекта.
Название: Re: Отловить текст Action в меню. Отправлено: Авварон от Июнь 15, 2015, 14:09 А чем эстетов просто ноль не устроил? :) Код: void f(int) {} Название: Re: Отловить текст Action в меню. Отправлено: gil9red от Июнь 15, 2015, 14:24 Извините конечно, но что собственно проверять? Если это: if(!textAction->text().isNull()); Ну так проверял вылетает при проверке. Иначе бы не спрашивал. QAction не знает такой проверки. Что еще могу прверить на isNull? Посмотрите что возвращается: qDebug() << textAction; Название: Re: Отловить текст Action в меню. Отправлено: Serega от Июнь 15, 2015, 15:07 В ветке для новичков просто пытался получить чуть более конкретный ответ. Получил бы, нашел бы ошибки сразу.
Пытался я проверить с самого начала возвращаемое значение на ноль, но в одном случае допустил банальную ошибку, машинально поставил точку с запятой после условия и отмел этот вариант. isNull не оказалось такого метода, но зациклился именно на нем после неудачного первого варианта. Вот и пришлось часать репу, что не так. В общем спасибо. Название: Re: Отловить текст Action в меню. Отправлено: Igors от Июнь 15, 2015, 15:15 Код: void f(int) {} Разве не ясно было сказано: проверять возвращаемое значение. Ну, накинулись на новичка :) А что такое "возвращаемое значение"? Нет, я конечно сам часто употребляю это выражение - но вот дать четкое определение затрудняюсь. А Вы? (ну вот, щас начнут тыкать в нос ссылками...) Название: Re: Отловить текст Action в меню. Отправлено: Hellraiser от Июнь 15, 2015, 15:42 Ну, накинулись на новичка :) А что такое "возвращаемое значение"? Нет, я конечно сам часто употребляю это выражение - но вот дать четкое определение затрудняюсь. А Вы? Тема конечно для новичков, но, все-таки, для новичков в Qt. А без знания основ языка разработку программ с использованием Qt не стоит начинать.Название: Re: Отловить текст Action в меню. Отправлено: Serega от Июнь 15, 2015, 16:50 Это вечный вопрос. С чего стоит с чего не стоит. Специально безвылазно штудировал C/C++, хотя до этого кодил, но как то спонтанно, урывками читая куски информации. Но решил так. Однако я так же специально не кропал бесполезный код примеров. Просто внимательно читал/слушал и не одну книгу и видеокурс... И шаг за шагом разбирал примеры с листа, пока не осозновал до конца. Но для этого пришлось дважды просмотреть видематериал разных точек зрения и книг, пока не прочитав от корки до корки не осознал, что наконец все ясно (во всяком случае пока читаешь нет неясностей).
Но вот практикой я сознательно не занимался, что бы не отвлекаться. Сейчас же на конкретных задачах ее и прохожу. Вроде как все ясно, но отсутствие этой самой практики заставляет сомневаться, что делаю все верно если что то сразу не пошло. Так что не так все плохо у меня с теорией. В этом случае что то не заладилось и конечно мне бы увидеть всего лиш одну строчку if( textAction != NULL ) было бы гораздо полезнее, что бы понять в чем ошибка без лишних дискусий. Я же пытался притулить if( !textAction.isNull ). Но раз вы утверждаете, что должно работать (прада как имено не говоря) значит шел в том направлении и осталось подумать, как еще можно. Проблемы то никакой нет, задачка то простенькая, но все таки это опыт. Думаю сами на подобном спотыкались. Часто тут говорят "Мы мол не экстрасенсы", но какого начинающим? Им ведь сложне понимать с полуслова. Однако, могу сказать, что сейчас мне намного проще понять чем год назад и закрепить полученный навык. |