Вот мой минимальный воспроизводимый пример:
Код: Выделить всё
from qtpy import QtWidgets
from qtpy.QtWidgets import QGraphicsView, QMainWindow, QTreeWidget, QWidget, QPlainTextEdit
try:
import PySide6QtAds as QtAds
except ImportError:
from PyQtAds import QtAds
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
self.dock_manager = None
QtAds.CDockManager.setConfigFlag(QtAds.CDockManager.OpaqueSplitterResize, True)
QtAds.CDockManager.setConfigFlag(QtAds.CDockManager.XmlCompressionEnabled, False)
QtAds.CDockManager.setConfigFlag(QtAds.CDockManager.FocusHighlighting, True)
self.showMaximized()
self.dock_manager = QtAds.CDockManager(self)
# Main working space
central_widget1 = QtAds.CDockWidget("Tab 1")
central_widget1.setWidget(QGraphicsView())
self.dock_manager.addDockWidgetTab(QtAds.CenterDockWidgetArea, central_widget1)
central_widget2 = QtAds.CDockWidget("Tab 2")
central_widget2.setWidget(QPlainTextEdit())
self.dock_manager.addDockWidgetTab(QtAds.CenterDockWidgetArea, central_widget2)
# Results tab (hidden by default)
result_widget = QtAds.CDockWidget("Result")
result_widget.setWidget(QWidget())
result_widget.setMinimumWidth(600)
result_dock = self.dock_manager.addDockWidget(QtAds.DockWidgetArea.RightDockWidgetArea, result_widget)
result_dock.hide()
# Log Tab
log_widget = QtAds.CDockWidget("Logs")
log_widget.setWidget(QWidget())
log_widget.setMinimumHeight(200)
self.dock_manager.addDockWidget(QtAds.DockWidgetArea.BottomDockWidgetArea, log_widget)
# Navigation Sidebar
navigation_widget = QtAds.CDockWidget("Navigation")
navigation_widget.setWidget(QTreeWidget())
navigation_widget.setMinimumWidth(300)
navigation_dock = self.dock_manager.addDockWidget(QtAds.DockWidgetArea.LeftDockWidgetArea, navigation_widget)
navigation_widget.resize(500, navigation_widget.height())
# Details sidebar
details_widget = QtAds.CDockWidget("Details")
details_widget.setWidget(QWidget())
details_widget.setMinimumWidth(300)
details_dock = self.dock_manager.addDockWidget(
QtAds.DockWidgetArea.BottomDockWidgetArea, details_widget, navigation_dock
)
navigation_dock.resize(500, navigation_dock.height())
details_dock.resize(500, details_dock.height())
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
app.setStyle("windowsvista")
main_window = MainWindow()
main_window.show()
app.exec_()
Настройка setmaximumwidth (300) , но пользователь должен иметь возможность сделать его более шире. br /> < /ul>
Как я могу сделать боковую панель более узкой, чем ширина по умолчанию в QTAD? Есть ли способ обеспечить начальную ширину и рацион по умолчанию при изменении размера окна?
Любая помощь будет оценена!
Подробнее здесь: https://stackoverflow.com/questions/793 ... ing-system