Если в приложении используется интерфейс MDI, центральную область будет занимать виджет
Менеджеры компоновки, разделители и рабочие области MDI могут использоваться совместно со стандартными виджетами Qt или с пользовательскими виджетами. В главе 6 подробно рассматриваются эти классы.
В приложении Электронная таблица в качестве центрального виджета применяется некоторый подкласс класса
Создание подкласса QTableWidget
Класс
Давайте начнем с реализации виджета и сначала приведем заголовочный файл:
01 #ifndef SPREADSHEET_H
02 #define SPREADSHEET_H
03 #include
04 class Cell;
05 class SpreadsheetCompare;
Заголовочный файл начинается с предварительных объявлений классов
Такие атрибуты ячейки
06 class Spreadsheet : public QTableWidget
07 {
08 Q_OBJECT
09 public:
10 Spreadsheet(QWidget *parent = 0);
11 bool autoRecalculate const { return autoRecalc; }
12 QString currentLocation const;
13 QString currentFormula const;
14 QTableWidgetSelectionRange selectedRange const;
15 void clear;
16 bool readFile(const QString &fileName);
17 bool writeFile(const QString &fileName);
18 void sort(const SpreadsheetCompare &compare);
Функция
В главе 3 мы опирались на использование некоторых открытых функций класса электронной таблицы
19 public slots:
20 void cut;
21 void copy;
22 void paste;
23 void del;
24 void selectCurrentRow;
25 void selectCurrentColumn;
26 void recalculate;
27 void setAutoRecalculate(bool recalc);
28 void findNext(const QString &str, Qt::CaseSensitivity cs);
29 void findPrevious(const QString &str, Qt::CaseSensitivity cs);
30 signals:
31 void modified;
Класс
32 private slots:
33 void somethingChanged;
Мы определяем один закрытый слот, который используется внутри класса
34 private: