Изменение размера доков в системе стыковки QTADSPython

Программы на Python
Anonymous
Изменение размера доков в системе стыковки QTADS

Сообщение Anonymous »

Я использую qt в Python с QTads для пользовательского интерфейса на основе стыковки. Тем не менее, я не могу сделать боковую панель (навигационную панель) более узкой. Независимо от того, какую ширину я установил с помощью 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) , но пользователь должен иметь возможность сделать его более шире. br /> < /ul>
Как я могу сделать боковую панель более узкой, чем ширина по умолчанию в QTAD? Есть ли способ обеспечить начальную ширину и рацион по умолчанию при изменении размера окна?
Любая помощь будет оценена!

Подробнее здесь: https://stackoverflow.com/questions/793 ... ing-system

Вернуться в «Python»