03 spreadsheet->addAction(copyAction);
04 spreadsheet->addAction(pasteAction);
05 spreadsheet->addAction(cutAction);
06 spreadsheet->setContextMenuPolicy(Qt::ActionsContextMenu);
07 }
Любой виджет в Qt может иметь связанный с ним список действий
Более сложный способ обеспечения контекстного меню заключается в переопределении функции
01 void Mainwindow::createToolBars
02 {
03 fileToolBar = addToolBar(tr("&File"));
04 fileToolBar->addAction(newAction);
05 fileToolBar->addAction(openAction);
06 fileToolBar->addAction(saveAction);
07 editToolBar = addToolBar(tr("&Edif));
08 editToolBar->addAction(cutAction);
09 editToolBar->addAction(copyAction);
10 editToolBar->addAction(pasteAction);
11 editToolBar->addSeparator;
12 editToolBar->addAction(findAction);
13 editToolBar->addAction(goToCellAction);
14 }
Создание панелей инструментов очень похоже на создание меню. Мы создаем панель инструментов File и панель инструментов Edit. Как и меню, панель инструментов может иметь разделители.
Создание и настройка строки состояния
После создания меню и панелей инструментов мы готовы приступить к созданию строки состояния приложения Электронная таблица.
Обычно строка состояния содержит два индикатора: положение текущей ячейки и формулу текущей ячейки. Полоса состояния также используется для вывода подсказок и других временных сообщений.
Для создания строки состояния в конструкторе
01 void MainWindow::createStatusBar
02 {
03 locationLabel = new QLabel(" W999 ");
04 locationLabel->setAlignment(Qt::AlignHCenter);
05 locationLabel->setMinimumSize(locationLabel->sizeHint);
06 formulaLabel = new QLabel;
07 formulaLabel->setIndent(3);
08 statusBar->addWidget(locationLabel);
09 statusBar->addWidget(formulaLabel, 1);
10 connect(spreadsheet, SIGNAL(currentCellChanged(int, int, int, int)),
11 this, SLOT(updateStatusBar));
12 connect(spreadsheet, SIGNAL(modified),
13 this, SLOT(spreadsheetModified));
14 updateStatusBar;
15 }
Функция