LINUX.ORG.RU

[Qt] непонятности с QMetaMethod

 


0

0

Непонятности заключаются в том, что он не желает "показывать" plain member function класса. То есть делаю так:

const QMetaObject* mo=nw->metaObject();//nw -- наследник QWidget
for(int i=0;i < mo->methodCount();++i)
{
std::cout<<"mo->method("<<i<<").signature()=" \
<<mo->method(i).signature()<<std::endl;
}

А вывод -- только сигналы и слоты. Или я что-то не понимаю в этой жизни?

Не для всех методов класса генерируется метакод, если хочешь использовать мета-вызовы для "обычного" метода - используй макрос Q_INVOKABLE.

mqspi
()
Ответ на: комментарий от mqspi

Ох и костыляндия-же этот закос под интроспекцию в плюсах...

Но всё равно спасибо. Надо уходить на более другие языки. :-)

one_more_hokum ★★★
() автор топика
Ответ на: комментарий от one_more_hokum

да-да, общий подход ко всему - это костыляндия, обычный метод никак не связан с Qt, это просто метод C++, с какой радости там должна быть мета какая-то? это из серии бреда про отсутствие проверки диапазона в operator[]() с отмазкой о некрасивости кода с at().

"В С++ в каждом месте есть только то, что без чего нельзя обойтись." - повторять перед сном.

PayableOnDeath
()
Ответ на: комментарий от PayableOnDeath

А вот потому, что я рассчитывал на Qt, что он втихаря воткнёт метаинформацию на функции класса. "Тихаря" не произошло, что сильно жаль (мне).

> "В С++ в каждом месте есть только то, что без чего нельзя обойтись."

Смею напомнить, что Qt -- не есть pure C++, а его диалект, претерпевший "некоторые" изменения относительно оригинала.

> повторять перед сном.

А тебе -- поститься, молиться и слушать радио "РадонежЪ".

one_more_hokum ★★★
() автор топика
Ответ на: комментарий от one_more_hokum

> А вот потому, что я рассчитывал на Qt, что он втихаря воткнёт метаинформацию на функции класса. "Тихаря" не произошло, что сильно жаль (мне).

Ну ладно, не расстраивайся, найди какой-нибудь шрифт, чтобы макрос Q_INVOKABLE выглядел в твоем редакторе как 11 сердечек. Внеси его в список пользовательских ключевых слов и выводи белым по белому... Только не грусти.

mannaz
()
Ответ на: комментарий от mannaz

> чтобы макрос Q_INVOKABLE выглядел в твоем редакторе как 11 сердечек

Сам ты эмо!!! :-D

one_more_hokum ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.