在qgraphicsScene中加入是widget可以被点击拖动 怎么能固定
时间: 2024-02-17 10:05:05 浏览: 58
自定义QGraphicsProxyWidget,嵌入自定义QWidget(可以拖拽,显示焦点边框)
如果你想在 QGraphicsScene 中加入一个 QWidget,并且不希望它能够被拖动,可以通过将 QGraphicsProxyWidget 的 setFlag 函数的参数设置为 QGraphicsItem::ItemIsMovable 来实现。这样,用户就无法通过鼠标拖动该小部件。
以下是一个示例代码,演示如何将 QWidget 添加到 QGraphicsScene 中并禁止其拖动:
```
// 创建一个 QWidget
QWidget *myWidget = new QWidget();
// 创建一个 QGraphicsProxyWidget 并将 QWidget 添加到其中
QGraphicsProxyWidget *proxy = new QGraphicsProxyWidget();
proxy->setWidget(myWidget);
// 禁止 QGraphicsProxyWidget 拖动
proxy->setFlag(QGraphicsItem::ItemIsMovable, false);
// 将 QGraphicsProxyWidget 添加到 QGraphicsScene 中
scene->addItem(proxy);
```
在这个例子中,我们首先创建了一个 QWidget,然后创建了一个 QGraphicsProxyWidget,并将 QWidget 添加到其中。接下来,我们使用 setFlag 函数将 QGraphicsProxyWidget 的 ItemIsMovable 标志设置为 false,这样就禁止了 QGraphicsProxyWidget 的拖动。最后,我们将 QGraphicsProxyWidget 添加到 QGraphicsScene 中。
阅读全文