Pull to refresh

Comments 24

> Обратный вызов имеет два основных недостатка.
> Во-первых, он не является типобезопасным. Мы никогда не можем быть уверены
> что функция делает обратный вызов с корректными аргументами.
Почему вы считаете, что указатель на функцию не является типобезопасным? Попробуйте привести пример без C-кастов с указателями, когда нарушается типобезопасность.

> Во-вторых,
> обратный вызов жестко связан с вызывающей его функцией, так как эта функция
> должна точно знать какой обратный вызов надо делать.
Вообще не понятно что здесь имеется в виду. Вызывающий код ничем не связан с обработчиком, всё что ему известно — это указатель на функцию.

Вообще boost::signals и boost::function — это те же уазатели на функции, только унифицированные для обычных функций и member-функций + биндинг параметров.

Это просто перевод официальной документации…
вы весь ассистант будете переводить? может тогда лучше дополнить частично переведенный? мне кажется, что там перевод будет полезней, потому как будет использоваться повсеместно и непосредственно из ассистанта, что удобней.
Ну весь ассистант я не потяну, но свой вклад внесу :)
Тогда уж лучше doc.crossplatform.ru/qt/ — wiki русского неофициального перевода перевода, про который написано по Вашей ссылке.
Это одна и та же команда
«соединсять»
А так — спасибо, как раз начал изучать Qt.
Это все конечно хорошо, но, по-моему, лучше было бы разбить статью на 2 или 3 части. Да и не все описанные фичи сопровождены примером, а стоило бы.
это не статья а перевод;) все примеры что есть в ассистанте, тут тоже присутствуют
Еще, кстати, по-моему Макс Шлее писал, что слоты могут быть виртуальными, но соединение с виртуальным слотом примерно в 10 раз медленнее, чем с невиртуальным.
Я думаю что следовало бы упомянуть Observer паттер в данном повествовании и описать разницу в имплементации.
UFO just landed and posted this here
Нет :)

$ make && ./qt-over
re-emit
re-emit
... // 10690 lines skipped
re-emit
re-emit
Segmentation fault
$
QObject::blockSignals(bool).
Спасибо за стаьтью, все проще чем мне казалось =)
Хорошая статья.
Для всех изучающих Qt настоятельно рекомендую их «родные» туториалы: doc.trolltech.com/4.2/examples.html
Там очень хорошо шаг за шагом вводят в курс дела.

Сам в своё время учился именно по ним.
А все таки зачем переводить ассистант? Гораздо лучше рассказывать своими словами… с какими-то своими примерами, еще может быть с чем-нибудь…
А куда мне прописывать CONFIG += no_keywords, если я использую студию и у меня нет .pro-файлов, а moc прописан в Custom Build Steps?
Посмотрел, что генерит qmake — добавил в дефайны QT_NO_KEYWORDS.

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


void MainWindow::myExit(){
    QApplication::quit();
}

menu->addAction(tr("Выключение"), this,  SLOT(myExit()),
                    Qt::ALT + Qt::Key_F4);

А теперь при создании пункта меню все делается:


menu->addAction(tr("Выключение"), this, [] () {
        QApplication::quit();
        }, Qt::ALT + Qt::Key_F4);

Они могут не возвращать значение...

Ошибка перевода. Правильно: "Они не могут иметь возвращаемый тип (т.е. должен использоваться void)."

Какой еще такой перевод. Я аж даже залогинился от возмущения.

Я эту статью сам с головы писал.

Тогда ты залогинился не с того аккаунта, ибо автор статьи - другой пользователь. И это перевод документации Qt.

Ааааа перепутал. Посыпаю комментарий пеплом.

Sign up to leave a comment.

Articles