我有一个很多QDockWidgets和没有中央部件的应用程序。我想设置一些QDockWidgets初始大小(应用程序开始时的大小),但我不想限制它们的最小/最大大小。如何在没有中央小部件(PyQt4)的应用程序中设置QDockWidget初始(默认)大小?
怎么办?例如,我需要将初始大小150x75设置为其中的一个。我尝试了一些明显的方法(例如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. – alexisdm
@alexisdm,好吧,该怎么做?你可以请张贴一些可以帮助我的代码吗?谢谢! –
例如,使用'mw.setCentralQWidget(QWidget())'和'mw.centralWidget()。setFixedSize(0,0)'。 [这个问题](http://stackoverflow.com/q/10067821/894321)显示了你可以在没有设置中央部件的情况下遇到的问题。 – alexisdm