我刚遇到QDockWidgets
。我对这些小部件提供的灵活性感到震惊。但看来他们确实需要提前做好规划。
我在这里举了一个简单的例子:
import sys
from PyQt4 import QtCore, QtGui
class GUI(QtGui.QMainWindow):
def __init__(self):
super(GUI, self).__init__()
mainWidget=QtGui.QWidget()
self.setCentralWidget(mainWidget)
mainLayout = QtGui.QVBoxLayout()
mainWidget.setLayout(mainLayout)
DockA = QtGui.QDockWidget('DockA')
DockB = QtGui.QDockWidget('DockB')
mainLayout.addWidget(DockA)
mainLayout.addWidget(DockB)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
dialog = GUI()
dialog.show()
dialog.raise_()
sys.exit(app.exec_())
首先,我是QMainWindow
的子类。然后创建QWidget
。然后通过.setCentralWidget()
将其指定为中心。创建下一个QVBoxLayout()
并将其设置为mainWidget。
现在创建DockA和DockB。对话框显示出来。但码头不可移动。
我在这里做错了什么?
答案 0 :(得分:0)
来自官方文件:
QDockWidget provides the concept of dock widgets, also know as tool palettes or
utilitywindows. Dock windows are secondary windows placed in the
"dock widget area" around the central widget in a QMainWindow
答案 1 :(得分:0)
您应该使用addDockWidget
的{{1}}方法来获得功能齐全的移动停靠窗口。
示例:
QMainWindow