Однако если вы забудете сгенерировать файл makefile коман­дой qmake, программа не пройдет через компилятор тос и компоновщик программы по­жалуется на то, что некоторые объявленные функции не реализованы. Эти сообще­ния могут выглядеть достаточно странно. GCC выдает сообщения следующего вида:

finddialog.о(.text+0x28): undefined reference to 'FindDialog::QPaintDevice virtual table' (не определена ссылка на «виртуальную таблицу FindDialog::QpaintDevice»)

finddialog.о: 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 * *)"

(ошибка NK2001: неразрешенная внешняя ссылка)

При появлении подобных сообщений снова выполните команду qmake для обнов­ления файла makefile, затем заново постройте приложение.

Теперь выполните программу. Если клавиши быстрого доступа доступны на ва­шей платформе, убедитесь в правильной работе клавиш Alt+W, Alt+C, Alt+B и Alt+E Для перехода с одного виджета на другой используйте клавишу табуляции Tab. По умолчанию последовательность таких переходов соответствует порядку со­здания виджетов. Эту последовательность можно изменить с помощью функции QWidget::setTabOrder().

Обеспечение осмысленного порядка переходов с одного виджета на другой с по­мощью клавиши табуляции и применение клавиш быстрого доступа позволяют ис­пользовать все возможности приложений тем пользователям, которые не хотят (или не могут) пользоваться мышкой. Тот, кто быстро работает с клавиатурой, также предпочитает иметь возможность полного управления приложением посредством клавиатуры.

В главе 3 диалоговое окно поиска будет использовано нами в реальном приложе­нии и мы подключим сигналы findPrevious() и findNext() к некоторым слотам.


<< назад вперед >>