19 bool saveAs;
20 void find;
21 void goToCell;
22 void sort;
23 void about;
Некоторые функции меню, как, например, File | New (Файл | Создать) или Help | About (Помощь | О программе), реализованы в
24 void openRecentFile;
25 void updateStatusBar;
26 void spreadsheetModified;
27 private:
28 void createActions;
29 void createMenus;
30 void createContextMenu;
31 void createToolBars;
32 void createStatusBar;
33 void readSettings;
34 void writeSettings;
35 bool okToContinue;
36 bool loadFile(const QString &fileName);
37 bool saveFile(const QString &fileName);
38 void setCurrentFile(const QString &fileName);
39 void updateRecentFileActions;
40 QString strippedName(const QString &fullFileName);
Для поддержки пользовательского интерфейса главному окну потребуется еще несколько закрытых слотов и закрытых функций.
41 Spreadsheet *spreadsheet;
42 FindDialog *findDialog;
43 QLabel *locationLabel;
44 QLabel *formulaLabel;
45 QStringList recentFiles;
46 QString curFile;
47 enum { MaxRecentFiles = 5 };
48 QAction *recentFileActions[MaxRecentFiles];
49 QAction *separatorAction;
50 QMenu *fileMenu;
51 QMenu *editMenu;
…
52 QToolBar *fileToolBar;
53 QToolBar *editToolBar;
54 QAction *newAction;
55 QAction *openAction;
…
56 QAction *aboutQtAction;
57 };
58 #endif
Кроме этих закрытых слотов и закрытых функций в подклассе
Теперь мы кратко рассмотрим реализацию этого подкласса:
01 #include
02 #include "finddialog.h"
03 #include "gotocelldialog.h"
04 #include "mainwindow.h"
05 #include "sortdialog.h"
06 #include "spreadsheet.h"
Мы включаем заголовочный файл
07 MainWindow::MainWindow
08 {
09 spreadsheet = new Spreadsheet;
10 setCentralWidget(spreadsheet);
11 createActions;
12 createMenus;
13 createContextMenu;
14 createToolBars;
15 createStatusBar;
16 readSettings;
17 findDialog = 0;
18 setWindowIcon(QIcon(":/images/icon.png"));
19 setCurrentFile("");
20 }
В конструкторе мы начинаем создание виджета Электронная таблица