Символы кириллицы выводит некорректно. Как сделать чтобы выводился читабельный текст на русском языке? Тип приложения - не Qt, Qt Creator 4.5.0 основан на Qt 5.10.0. Win7.
|
Лекция 15: Разработка приложений с графическим интерфейсом
15.1 Окна. Класс QMainWindow
Как уже отмечалось ранее, виджеты, родительский виджет для которых не задан, становятся окнами. Обычно для окон приложения используют следующие классы:
- QMainWindow — окно приложения, которое может содержать меню, панели, строку статуса;
- QDialog — диалоговое окно;
- QWidget — простое, обычно немодальное окно;
Окно обычно имеет обрамление и заголовок. Текст для заголовка окна устанавливают с помощью метода QWidget::setWindowTitle(). Конструктор класса QWidget принимает дополнительный параметр, для типа окна — Qt::WindowFlags. С помощью этого параметра можно управлять типом обрамления, типом окна (для оконной системы). Например, можно создать окно без обрамления (это полезно в некоторых случаях для оформления, например, для окна загрузки программы) или деактивировать кнопки для минимизации и максимизации окна.
Окно диалога — это особый вид окна, который может использоваться для различных целей, но всегда предоставляет пользователю возможность взаимодействия с программой. Диалоги, как правило, не имеют кнопок для минимизации и максимизации окна. Окна диалога также часто бывают модальными. Модальность окна определяется его поведением. Модальные окна блокируют доступ к другим окнам, пока пользователь не завершит работу с окном (не закроет его). Задать модальность окна можно с помощью метода QWidget::setWindowModality(), если передать ему логическое значение true.
QMainWindow — класс, реализующий функциональность главного окна приложения. Для этого он дополнительно имеет специальные средства работы:
- Главное меню (Main menu);
- Панели инструментов (Toolbars);
- Панель статуса (Status bar);
- Присоединяемые панели (Docks);
Несколько элементов пользовательского интерфейса могут выполнять одно и то же действие (например: меню, кнопка на панели инструментов и т.д.). Класс QAction используют для того, чтобы привязать заданное действие к нескольким элементам управления. Благодаря группировке действия и связанных с ним данных (названия, подсказки, пиктограммы и т.д.), а также его многократного использования (в главном меню, на панели инструментов и т.д.), можно избежать дублирования кода.
Присоединяемые панели QDockWidget (dock widgets), монтируются в крае окна, и могут быть перенесены и перегруппированы пользователем, или даже разделены и размещены как отдельные окна. Обычно содержат группу элементов пользовательского интерфейса, объединенных общей целью и назначением или группу инструментов для работы с текущим открытым файлом.
Панель статуса QStatusBar (Status bar) обычно используют для изображения текстовых сообщений о статусе или текущие действия программы, но она может содержать пиктограммы, а также другие виджеты (например, индикаторы прогресса, метки).
Таким образом, воспользовавшись возможностями главного окна и создав несколько диалогов, можно получить программу, которая будет соответствовать стандартам современных пользовательских интерфейсов. До сих пор для создания интерфейса программы нам приходилось самостоятельно создавать и компоновать виджеты. В следующем параграфе мы используем для этой цели программу Qt Designer, которая позволяет создать интерфейс средствами визуального проектирования.