class MainWindow : public QMainWindow {
Q_0BJECT
public:
MainWindow();
protected:
void closeEvent(QCloseEvent *event);
Мы определяем класс MainWindow как подкласс QMainWindow. Он содержит макрос QJDBJECT, поскольку имеет собственные сигналы и слоты.
Функция close Event () определена в QWidget как виртуальная функция; она автоматически вызывается при закрытии окна пользователем. Она переопределяется в MainWindow для того, чтобы можно было задать пользователю стандартный вопрос относительно возможности сохранения изменений («Do you want to save your changes?*) и чтобы сохранить на диске пользовательские настройки.
private slots: void newFile(); void open(); bool save(); bool saveAsO; void find(); void goToCell(); void sort(); void about();
Некоторые функции меню, как, например, File|New (Файл|Создать) или Help|About (Помощь|0 программе), реализованы в MainWindow в виде закрытых слотов. Большинство слотов возвращают значение типа void, однако save() и saveAs() возвращают значение типа bool. Возвращаемое значение игнорируется при выполнении слота в ответ на сигнал, но при вызове слота в качестве функции мы может воспользоваться возвращаемым значением, как это мы можем делать при вызове любой обычной функции С++.
void openRecentFile(); void updateStatusBar(); void spreadsheetModified();
private:
void createActionsO;
void createMenus();
void createContextMenuO;
void createToolBarsO;
void createStatusBar();
void readSettingsO;
void writeSettingsO;
bool okToContinue();
bool loadFile(const QString &fileName);
bool saveFile(const QString &fileName);
void setCurrentFile(const QString &fileName);
void updateRecentFileActionsO;
QString strippedName(const QString &fullFileName);
Для поддержки пользовательского интерфейса главному окну потребуется еще несколько закрытых слотов и закрытых функций.
Spreadsheet *spreadsheet; FindDialog *findDialog; QLabel *locationLabel; QLabel *formulaLabel; QStringList recentFiles; QString curFile;
enum { MaxRecentFiles = 5 };
QAction *recentFileActions[MaxRecentFiles];
QAction *separatorAction;
QMenu *fileMenu; QMenu *editMenu;
QToolBar *fileToolBar; QToolBar *editToolBar; QAction *newAction; QAction *openAction;
QAction *aboutQtAction;
};
#endif
Кроме этих закрытых слотов и закрытых функций в подклассе MainWindow имеется также много закрытых переменных
<< назад вперед >>