Название: QMetaObject Отправлено: developer от Октябрь 30, 2008, 13:11 Вопрос ко всем.
Есть класс Код: class PaintPath: public QObject, public QPainterPath Где то в коде вызываю Код: path->metaObject()->methodCount(); Название: Re: QMetaObject Отправлено: ритт от Октябрь 30, 2008, 13:46 metaObject()->methodCount() возвращает кол-во слотов + сигналов для данного класса
либо делай firstMethod слотом, либо ищи другие пути Название: Re: QMetaObject Отправлено: developer от Октябрь 30, 2008, 14:10 Я уже читал ассистант, так оно и есть к сожалению. Ну, буду как-то выкручиваться
Название: Re: QMetaObject Отправлено: Rcus от Октябрь 30, 2008, 14:20 А чем обусловлено нежелание делать метод слотом? от этого он не перестанет быть методом, отличие только в том что moc сгенерит метаинформацию для данного метода
Название: Re: QMetaObject Отправлено: developer от Октябрь 30, 2008, 15:23 он не может возвращать значение, и приходится вызывать нужную функцию из тела етого слота, по моему ето несколько накладние расходы
Название: Re: QMetaObject Отправлено: ритт от Октябрь 30, 2008, 15:32 почему не может?
Название: Re: QMetaObject Отправлено: Rcus от Октябрь 30, 2008, 15:41 помоему здесь есть недопонимание принципа работы moc.
слот это тот же метод, просто для него moc генерирует метаинформацию, что позволяет вызывать его сигналами, привязывать к скриптам, вызывать по имени и прочее например Цитировать bool QWidget::close () [slot] Closes this widget. Returns true if the widget was closed; otherwise returns false Название: Re: QMetaObject Отправлено: developer от Октябрь 30, 2008, 15:53 Во блин, а думал, что по куте знаю многое. А тут такое. Ну спасибо, открыли глаза. :D
Название: Re: QMetaObject Отправлено: SASA от Октябрь 30, 2008, 19:12 помоему здесь есть недопонимание принципа работы moc. слот это тот же метод, просто для него moc генерирует метаинформацию, что позволяет вызывать его сигналами, привязывать к скриптам, вызывать по имени и прочее например Цитировать bool QWidget::close () [slot] Closes this widget. Returns true if the widget was closed; otherwise returns false Я б не советовал использовать слоты с возвращаемым значением. Раньше тоже думал, что всё хорошо. Но потом обнаружил, что при вызове из другого потока возвращаемое значение пропадает. Так что, аккуратнее. Название: Re: QMetaObject Отправлено: Rcus от Октябрь 30, 2008, 19:35 Что значит при вызове из другого потока пропадают?
Ежели вы говорите об асинхронном вызове, то конечно, иначе никак. Название: Re: QMetaObject Отправлено: SASA от Октябрь 30, 2008, 19:44 Так я и говорю: "Аккуратнее." ;)
|