QT 4: программирование GUI на С++ | страница 19
Для закрытых переменных мы использовали предварительные объявления их классов. Это допустимо, потому что все они являются указателями, и мы не используем их в заголовочном файле — поэтому компилятору не требуется иметь полные определения классов. Мы могли бы воспользоваться соответствующими заголовочными файлами (
Теперь рассмотрим файл finddialog.cpp, в котором находится реализация класса FindDialog.
>01 #include
>02 #include "finddialog.h"
Во-первых, мы включаем
В filedialog.h вместо включения
>03 FindDialog::FindDialog(QWidget *parent)
>04 : QDialog(parent)
>05 {
>06 label = new QLabel(tr("Find &what:"));
>07 lineEdit = new QLineEdit;
>08 label->setBuddy(lineEdit);
>09 caseCheckBox = new QCheckBox(tr("Match &case"));
>10 backwardCheckBox = new QCheckBox(tr("Search backward"));
>11 findButton = new QPushButton(tr("&Find"));
>12 findButton->setDefault(true);
>13 findButton->setEnabled(false);
>14 closeButton = new QPushButton(tr("Close"));
В строке 4 конструктору базового класса передается указатель на родительский виджет (параметр parent). Затем мы создаем дочерние виджеты. Функция tr() переводит строковые литералы на другие языки. Она объявляется в классе QObject и в каждом подклассе, содержащем макрос Q_OBJECT. Любое строковое значение, которое пользователь будет видеть на экране, полезно преобразовывать функцией