В конструкторе мы начинаем создание виджета Электронная таблица
Мы вызываем закрытые функции
Мы инициализируем указатель
В приложениях с графическим пользовательским интерфейсом обычно используется много изображений. Существует много различных методов, предназначенных для работы приложения с изображениями. Наиболее распространенными являются:
• хранение изображений в файлах и загрузка их во время выполнения приложения;
• включение файлов XPM в исходный код программы; это возможно, поскольку файлы XPM являются совместимыми с файлами исходного кода С++);
• использование механизма определения ресурсов, предусмотренного в Qt.
Мы используем здесь механизм определения ресурсов, поскольку он более удобен, чем загрузка файлов во время выполнения приложения, и он работает со всеми поддерживаемыми форматами графических файлов. Мы храним изображения в подкаталоге
Для применения системы ресурсов Qt мы должны создать файл ресурсов и добавить в файл
RESOURCES = spreadsheet.qrc
Сам файл ресурсов имеет простой XML—формат. Ниже показан фрагмент из используемого нами файла ресурсов:
…
Файлы ресурсов после компиляции входят в состав исполняемого модуля приложения, поэтому они не могут теряться. При ссылке на ресурсы мы используемпрефикс пути
Создание меню и панелей инструментов
Большинство современных приложений с графическим пользовательским интерфейсом содержат меню, контекстное меню и панели инструментов. Меню позволяют пользователям исследовать возможности приложения и узнать новые способы работы, а контекстные меню и панели инструментов обеспечивают быстрый доступ к часто используемым функциям.
Использование понятия «действия» упрощает программирование меню и панелей инструментов при помощи средств разработки Qt. Элемент
• создание и настройка действий;
• создание меню и добавление к ним действий;
• создание панелей инструментов и добавление к ним действий.
В приложении Электронная таблица действия создаются в
01 void MainWindow::createActions()
02 {
03 newAction = new QAction(tr("&New"), this);
04 newAction->setIcon(QIcon(":/images/new.png"));
05 newAction->setShortcut(tr("Ctrl+N"));
06 newAction->setStatusTip(tr("Create a new spreadsheet file"));