Для компиляции этой программы выполните обычную команду
Для правильной работы
Классы с макросом
finddialog.o(.text+0x28): undefined reference to
'FindDialog::QPaintDevice virtual table'
(не определена ссылка на «виртуальную таблицу
FindDialog::QPaintDevice»)
finddialog.o: In function 'FindDialog::tr(char const*. char const*)':
/usr/lib/qt/src/corelib/global/qglobal.h:1430: undefined reference to
'FindDialog::staticMetaObject'
(В функции 'FindDialog::tr(…)' не определена ссылка на
'FindDialog::staticMetaObject')
Сообщения в Visual С++ выглядят следующим образом:
finddialog.obj : error LNK2001: unresolved external symbol
"public:~virtual int __thiscall MyClass::qt_metacall(enum QMetaObject::Call,int,void * *)"
(ошибка LNK2001: неразрешенная внешняя ссылка)
При появлении подобных сообщений снова выполните команду
Теперь выполните программу. Если клавиши быстрого доступа доступны на вашей платформе, убедитесь в правильной работе клавиш Alt+W, Alt+C, Alt+B и Alt+F. Для перехода с одного виджета на другой используйте клавишу табуляции Tab. По умолчанию последовательность таких переходов соответствует порядку создания виджетов. Эту последовательность можно изменить с помощью функции
Обеспечение осмысленного порядка переходов с одного виджета на другой с помощью клавиши табуляции и применение клавиш быстрого доступа позволяют использовать все возможности приложений тем пользователям, которые не хотят (или не могут) пользоваться мышкой. Тот, кто быстро работает с клавиатурой, также предпочитает иметь возможность полного управления приложением посредством клавиатуры.
В главе 3 диалоговое окно поиска будет использовано нами в реальном приложении и мы подключим сигналы
Подробное описание технологии сигналов и слотов
Механизм сигналов и слотов играет решающую роль в разработке программ Qt. Он позволяет прикладному программисту связывать различные объекты, которые ничего не знают друг о друге. Мы уже соединяли некоторые сигналы и слоты, объявляли наши собственные сигналы и слоты, реализовывали наши собственные слоты и генерировали наши собственные сигналы. Давайте рассмотрим этот механизм более подробно.
Слоты почти совпадают с обычными функциями, которые объявляются внутри классов С++ (функции—члены). Они могут быть виртуальными, они могут быть перегруженными, они могут быть открытыми (public), защищенными (protected) и закрытыми (private), они могут вызываться непосредственно, как и любые другие функции—члены С++, и их параметры могут быть любого типа. Однако слоты (в отличие от обычных функций—членов) могут подключаться к сигналам, и в результате они будут вызываться при каждом генерировании соответствующего сигнала.
• Оператор connect выглядит следующим образом:
connect (
где