python - Resize Docks in QtAds Docking System - Stack Overflow

I am using Qt in Python with QtAds for a docking-based UI. However, I am unable to make the sidebar (na

I am using Qt in Python with QtAds for a docking-based UI. However, I am unable to make the sidebar (navigation panel) narrower. No matter what width I set using setMinimumWidth() or resize(), it always stays the same.

Here is my minimal reproducible example:

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_()

What I Tried:

  • Setting setMaximumWidth(300), but the user should have the option to make it wider.
  • Using resize(200, navigation_dock.height()), but the width remains unchanged.

How can I make the sidebar narrower than its default width in QtAds? Is there a way to enforce an initial width and a default ration when resizing the window?

Any help would be appreciated!

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745304817a4621645.html

相关推荐

  • python - Resize Docks in QtAds Docking System - Stack Overflow

    I am using Qt in Python with QtAds for a docking-based UI. However, I am unable to make the sidebar (na

    7小时前
    20

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信