QT 4: программирование GUI на С++ | страница 41
>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
Кроме этих закрытых слотов и закрытых функций в подклассе MainWindow имеется также много закрытых переменных. По мере их использования мы будем объяснять их назначение.
Теперь мы кратко рассмотрим реализацию этого подкласса:
>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 }
В конструкторе мы начинаем создание виджета Электронная таблица Spreadsheet и определяем его в качестве центрального виджета главного окна. Центральный виджет занимает среднюю часть главного окна (см. рис. 3.2). Класс