QtAds停靠系统中无法缩小侧边栏宽度的问题求助
QtAds停靠系统中无法缩小侧边栏宽度的问题求助
我在Python中使用Qt配合QtAds实现基于停靠的UI,但无法缩小侧边栏(导航面板)的宽度。无论我用setMinimumWidth()还是resize()设置多少宽度,它都保持不变。
以下是我的最小可复现示例:
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),但用户应该能够将其调宽。 - 使用
resize(200, navigation_dock.height()),但宽度没有变化。
如何让QtAds中的侧边栏比默认宽度更窄?有没有办法设置初始宽度,以及窗口调整大小时的默认比例?
任何帮助都将不胜感激!
备注:内容来源于stack exchange,提问作者Drimer
相关产品推荐
相关产品推荐

