c++ - 可滚动背景,上面有可调整大小的 Qt 小部件

标签 c++ qt

我想创建一个 Qt 窗口

  1. 可以通过拖动背景来滚动/平移(不应显示滚动条)
  2. 在指定位置包含多个子小部件(随背景滚动)
  3. 子小部件可以通过拉动边框来调整大小

到目前为止,我所做的是使用 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/

相关文章:

c++ - 在五个节点的图上应用 Dijkstra 算法

c++ - 将内存数据 ptr 映射到 qt 输入字段

c++ - 使用 Qt : Invalid conversion from const void* to void* while using QList<Type *const>

c++ - 碰撞检测无法正常工作

c++ - 这是哪种 CRC 算法?如何提高?

c++ - 如何在 C++ 文件中包含 list.h、queue.h 和 vector.h 等头文件?

c++ - move 赋值运算符异常

c++ - 具有给定容错性的容器中存在的 find_if 数字

qt - 更新 QML 中 var 属性的绑定(bind)

c++ - 在表单之间传递 cv::Mat img