Шаблоны окон в Qt (или в основном объектно-ориентированные Windows) - PullRequest
1 голос
/ 13 февраля 2012

Итак, у меня есть несколько окон, которые я хочу создать, каждое из которых отличается, но имеет схожие свойства.Для простоты, давайте просто скажем, что я хочу ряд кнопок вдоль нижней части (фактические кнопки отличаются для каждого окна, но они должны быть в той же конфигурации).Затем в верхней половине окна я хочу, чтобы оно было очень основано на том, какое окно открыто.

Короче говоря, я хотел бы иметь окно A, в котором есть шаблон окна с кнопками внизу.И затем кнопка B, которая создает кнопки и имеет свою собственную вещь вверху, и окно C, которое имеет свой собственный набор кнопок, и вещь сверху, которая полностью отличается от B.

Есть лиВ любом случае я могу сделать это в Qt?Также было бы возможно иметь только одно окно A, и оно могло бы меняться взад и вперед между конфигурациями в B и C, когда это уместно?

Ответы [ 2 ]

2 голосов
/ 13 февраля 2012

Да, это можно сделать с помощью Qt.Вы можете создавать виджеты динамически.Создайте каждое окно как отдельный QWidget, который будет содержать другие виджеты (например, кнопки).В этом случае главное окно будет содержать простой boxlayout и один из этих оконных виджетов, созданных динамически.Когда требуемый тип окна изменится, удалите текущий виджет окна и создайте другой.

Другой вариант - поместить все виджеты, необходимые для окон A, B и C, в одно и то же окно.Когда необходимо окно A, покажите принадлежащие ему виджеты и скройте остальные.

1 голос
/ 14 февраля 2012

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

Но в любом случае ..Создайте QMainWindow, внутри которого вы создаете 3 виджета (A, B и C).Скрыть B и C при использовании A. Затем скрыть A и C при использовании B и т. Д.

Это похоже на то, что предлагал Року, но у него была несколько иная древовидная организация, поскольку он отображал только одно окно иизменить виджеты в этом большем окне.Наличие трех виджетов, которые покрывают все окно, и переключение между ними, вероятно, проще в управлении, поскольку фактически вам приходится менять только два из них при переключении с одного на другое.

...