Как иметь съемные окна инструментов в Qt

Я разрабатываю инструмент, который будет иметь несколько переменных размеров окон. Я могу добиться этого с помощью QSplitter горизонтальное вертикальное. Пожалуйста, смотрите прикрепленное изображение.

Теперь, как сделать эти отдельные окна съемными / развернуть / закрыть? Как добавить перекрестные маркеры в верхнем правом углу каждого окна, чтобы их можно было максимально закрыть или отсоединить оттуда? Так же, как эта ссылка:-

http://vector.com/portal/medien/ecu_testing/tae/test_automation_editor.png

2 ответа

Решение

Вы ищете QDockWidget учебный класс:

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

Проверьте этот пример

В 2021 году появится KDQDockWidget, очевидно, намного лучшая структура стыковки Qt с коммерческими лицензиями и лицензиями с открытым исходным кодом.

На сайте перечислены следующие преимущества:

  • Он обеспечивает расширенную стыковку, которую QDockWidgets не поддерживает.
  • Механизм компоновки учитывает ограничения минимального / максимального размера и некоторые политики размера.
  • Поддерживает привязки PySide2.
  • Чистая кодовая база.
  • Поддерживает ленивое изменение размера разделителя.
  • Вы можете переупорядочивать вкладки с помощью мыши.
  • Поддерживает частичное сохранение / восстановление макета, влияющее только на выбранный поднабор.
  • Позволяет дважды щелкнуть строку заголовка, чтобы развернуть ее.
  • Позволяет дважды щелкнуть разделитель для равномерного распределения.
  • Показывает кнопку закрытия на вкладках.
  • Позволяет сделать виджет док-станции не закрываемым и / или не стыкуемым.
  • Предоставляет дополнительную кнопку развертывания в строке заголовка.
  • FloatingWindows может быть служебным или полностью родным.
Другие вопросы по тегам