Название: как crearor связывает сигнал и слот Отправлено: nkment от Июнь 22, 2012, 23:22 Доброе время суток!
в Creator на форме создаю pushButton, перехожу к слоту через выбор сигнала cliked() получаю void Widget::on_pushButton_clicked() а года хочу изменить имя pushButton связь СИГНАЛ-СЛОТ пропадает, облазил весь код и нигде не нашел connect(pushButton, SIGNAL(...), this, SLOT(...)) объясните как оно работает ??? Название: Re: как crearor связывает сигнал и слот Отправлено: mutineer от Июнь 22, 2012, 23:36 Видимо он использует вот этот метод
http://doc.crossplatform.ru/qt/4.7.x/html-qt/qmetaobject.html#connectSlotsByName Название: Re: как crearor связывает сигнал и слот Отправлено: Bepec от Июнь 22, 2012, 23:38 Это не креатор :)
Это мос вроде бы. Вкратце синтаксис такой - on_%названиеВиджета%_%егоСигнал%(%параметры сигнала%){} Пример: on_pushButton_clicked(){}; on_lineEdit_textChanged( const QString & text ){}; on_radioButton_toggled ( bool checked ){}; Соответственно слоты с этим названием будут вызываться при сигналах clicked() у кнопки, textChanged( const QString & text ) у lineEdit'a, toggled ( bool checked ) у радиоБуттона. Очень здорово экономит код и забываешь постепенно про connect(). Название: Re: как crearor связывает сигнал и слот Отправлено: Alex Custov от Июнь 22, 2012, 23:45 Название: Re: как crearor связывает сигнал и слот Отправлено: nkment от Июнь 22, 2012, 23:49 а как-то отследить/изменить эти связи автоматически можно, как в borlande?
или надо каждый раз .h и .cpp файлы ручками исправлять Название: Re: как crearor связывает сигнал и слот Отправлено: nkment от Июнь 22, 2012, 23:51 Это мос вроде бы.
uic что такое мок? поставил QT 4.8.1 и Creator 2.4.1 (MinGW) Название: Re: как crearor связывает сигнал и слот Отправлено: mutineer от Июнь 22, 2012, 23:54 что такое мок? http://doc.crossplatform.ru/qt/4.7.x/html-qt/metaobjects.html Название: Re: как crearor связывает сигнал и слот Отправлено: Bepec от Июнь 22, 2012, 23:57 Alex Gustov, помоему это всё же мета объект компилер автоматом привязывает сигналы к слотам с определёнными параметрами. Вот УИК я не рассматривал и о его возможностях незнаю ;)
update: Освежил знания в Ассистенте - Именно МОС просматривает код и создаёт сигнал слотовые связи в соответствии с коннектами и названиями слотов :D Название: Re: как crearor связывает сигнал и слот Отправлено: Alex_C от Июнь 23, 2012, 00:07 а как-то отследить/изменить эти связи автоматически можно, как в borlande? или надо каждый раз .h и .cpp файлы ручками исправлять Забудь. Ты не в Борланде. Здесь все существенно лучше :) Теперь по делу - на мой взгляд в Qt есть только одна ошибка -сделано вот это искусственное связывание. Сам когда начинал программировать на Qt (всего то 3 месяца назад :) ) это вызывало недоумение. Автоматически - нельзя. Но через некоторое время ты поймешь, насколько тут все проще, чем в Борланде. Название: Re: как crearor связывает сигнал и слот Отправлено: Alex Custov от Июнь 23, 2012, 00:47 Alex Gustov, помоему это всё же мета объект компилер автоматом привязывает сигналы к слотам с определёнными параметрами. Вот УИК я не рассматривал и о его возможностях незнаю ;) update: Освежил знания в Ассистенте - Именно МОС просматривает код и создаёт сигнал слотовые связи в соответствии с коннектами и названиями слотов :D Да, верно, для автоконнеткта используется metaobject. Только moc ничего не просматривает, это просто компилятор. Просматривает именно metaobject. Uic в данном случае просто генерирует код, который через metaobject создаёт коннекты. Название: Re: как crearor связывает сигнал и слот Отправлено: Bepec от Июнь 23, 2012, 01:02 В общем ты прав и я прав :) Ты более и я более :D Qt умён!
|