我想创建一个 Qt 窗口
- 可以通过拖动背景来滚动/平移(不应显示滚动条)
- 在指定位置包含多个子小部件(随背景滚动)
- 子小部件可以通过拉动边框来调整大小
到目前为止,我所做的是使用 setDragMode(QGraphicsView::ScrollHandDrag)
http://doc.qt.io/qt-5/qgraphicsview.html#dragMode-prop 创建一个 QGraphicsView
。然后,我将子小部件放置在 QGraphicsScene 上,但是,这不允许通过拉动边框来调整子小部件的大小。
我还尝试从 QDialog
继承我的自定义子小部件类,它允许 setSizeGripEnabled(true)
。但是,这不会调整其内容的大小,并且 QDialog 可能并不意味着成为 QGraphicsView 的一部分。
有什么建议吗?如果子窗口部件的行为就像也可以在标题栏上拖动的子窗口一样,只要它们无法关闭并且在拖动背景时移动即可。
最佳答案
您可以查看 QMdiArea
类(Qt 文档: QMdiArea )。根据问题描述,这就是您所需要的。
当然,您可以使用Graphics View Framework
,但是,我认为,这会更困难。如果您选择这种方法,QGraphicsWidget
类将非常有用(Qt 文档: QGraphicsWidget )。
关于c++ - 可滚动背景,上面有可调整大小的 Qt 小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37748182/