我有一个应用程序,有很多 QDockWidgets ,没有中央窗口。 我想设置其中一些 QDockWidgets 的初始大小(应用程序启动时的大小),但我不想限制它们的最小/最大大小。
如何做到这一点? 例如,我需要将其中一个的初始大小设置为150x75。 我尝试了显而易见的方法(例如与 dock widget 内容相关的 QWidget.Resize() ),但根本没有起作用。
这是情况的简化模型:
from PyQt4 import QtCore, QtGui
app = QtGui.QApplication([''])
mw = QtGui.QMainWindow() # mw = MainWindow
mw.setCentralWidget(None)
mw.showMaximized()
mw.dockWdg1 = QtGui.QDockWidget(mw)
mw.content1 = QtGui.QTreeWidget()
mw.dockWdg1.setWidget(mw.content1)
mw.addDockWidget(QtCore.Qt.DockWidgetArea(2), mw.dockWdg1)
mw.dockWdg1.setWindowTitle("1st dock widget")
mw.dockWdg2 = QtGui.QDockWidget(mw)
mw.content2 = QtGui.QTreeWidget()
mw.dockWdg2.setWidget(mw.content2)
mw.addDockWidget(QtCore.Qt.DockWidgetArea(1), mw.dockWdg2)
mw.dockWdg2.setWindowTitle("2nd dock widget")
mw.dockWdg3 = QtGui.QDockWidget(mw)
mw.content3 = QtGui.QTreeWidget()
mw.dockWdg3.setWidget(mw.content3)
mw.addDockWidget(QtCore.Qt.DockWidgetArea(1), mw.dockWdg3)
mw.dockWdg3.setWindowTitle("3rd dock widget")
mw.show()
app.exec_()
QMainWindow
必须始终具有中央小部件,但您可以尝试将其大小设置为0。 - alexisdmmw.setCentralQWidget(QWidget())
和mw.centralWidget().setFixedSize(0,0)
。这个问题展示了在没有设置中央窗口部件时可能遇到的问题。 - alexisdm