Как иметь съемные окна инструментов в 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 может быть служебным или полностью родным.