2024-04-24 03:00:40 发布
网友
如何显示dockwidget/centralwidget,其中Qt::BottomDockWidgetArea或{}中的dockwidget不占用Qt::LeftDockWidgetArea或Qt::RighDockWidgetArea空间?在
Qt::BottomDockWidgetArea
Qt::LeftDockWidgetArea
Qt::RighDockWidgetArea
这是实际显示,在右上角有2个DockWidget和中心小部件:
这将是首选显示:
似乎(有点奇怪)的诀窍是将QMainWindow设置为主窗口的中心小部件。在
下面是这个Qt FAQ example的PyQt端口:
from PyQt4 import QtGui, QtCore class MainWindow(QtGui.QMainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) self.setWindowTitle('Extended Side Dock Areas') self.window = QtGui.QMainWindow(self) self.window.setCentralWidget(QtGui.QTextEdit(self.window)) self.window.setWindowFlags(QtCore.Qt.Widget) self.setCentralWidget(self.window) self.dock1 = QtGui.QDockWidget(self.window) self.dock1.setWidget(QtGui.QTextEdit(self.dock1)) self.window.addDockWidget( QtCore.Qt.BottomDockWidgetArea, self.dock1) self.dock2 = QtGui.QDockWidget(self) self.dock2.setAllowedAreas( QtCore.Qt.LeftDockWidgetArea | QtCore.Qt.RightDockWidgetArea) self.dock2.setWidget(QtGui.QLabel('Left Dock Area', self.dock2)) self.addDockWidget(QtCore.Qt.LeftDockWidgetArea, self.dock2) self.dock3 = QtGui.QDockWidget(self) self.dock3.setWidget(QtGui.QLabel('Right Dock Area', self.dock3)) self.addDockWidget(QtCore.Qt.RightDockWidgetArea, self.dock3) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_())
您可能应该使用QMainWindow的角点功能来获得所需的行为。在
类似这样的方法可能有用(无法测试其是否编译,抱歉):
mainWindow->setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea); mainWindow->setCorner(Qt::TopRightCorner, Qt::RightDockWidgetArea); mainWindow->setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea); mainWindow->setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea);
参见: *QMainWindow::setCorner(...)
似乎(有点奇怪)的诀窍是将QMainWindow设置为主窗口的中心小部件。在
下面是这个Qt FAQ example的PyQt端口:
您可能应该使用QMainWindow的角点功能来获得所需的行为。在
类似这样的方法可能有用(无法测试其是否编译,抱歉):
参见: *QMainWindow::setCorner(...)
相关问题 更多 >
编程相关推荐