SDI- и MDI-приложения в Qt


Существует два типа приложений, базирующихся на документах. Первый тип — это SDI (Single Document Interface, однодокументный интерфейс), второй — MDI (Multiple Document Interface, многодокументный интерфейс). В SDI-приложениях рабочая область одновременно является окном приложения, а это значит, что невозможно открыть в одном и том же приложении сразу два документа. MDI-приложение предоставляет рабочую область (класса QWorkSpace), способную размещать в себе окна виджетов, что дает возможность одновременной работы с большим количеством документов.

Главное отличие MDI- от SDI-приложения состоит в том, что SDI-приложение содержит только одно окно документа, a MDI-приложение способно содержать несколько таких окон, что дает пользователю возможность параллельной работы с несколькими документами.

Класс QMainWindow предоставляет уже готовый лейаут, размещающий в себе виджеты, необходимые большинству приложений. В центре размещена рабочая область, которая может содержать только один виджет. При помощи класса QWorkspace в этой области можно размещать сразу несколько виджетов, что позволяет реализовывать MDI-приложения. Виджеты находятся в рабочей области, в виде отдельных окон, которые можно перемещать, изменять размеры, сворачивать, разворачивать, упорядочивать их и т. д.

Класс действия QAction предоставляет возможность централизации всех элементов интерфейса, связанных с конкретной командой в одном объекте. Это позволяет значительно сократить время разработки программы, а также уменьшить объем исходного кода.

Читать далее: Создание SDI-приложений в Qt