如何用QGraphicsWidget 实现move的功能?

weixin_38067693 2019-09-19 12:40:08
如题,代码如下        m_pScene->clear();        QWidget* widget = new QWidget;        widget->resize(w,h);        QGraphicsProxyWidget *proxy = m_pScene->addWidget(widget,Qt::BypassGraphicsProxyWidget | Qt::Window);        proxy->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);        proxy->setPos(x,y);        m_pScene->update();        return ;按理来说应该可以move了,但是鼠标点上去不能move,谁能帮忙解答一下
...全文
148 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38067822 2019-09-19
  • 打赏
  • 举报
回复
你这样子试试新建一个item从QGraphicsProxyWidget继承,添加的时候加你重写的这个item然后要重写这个item的mouseMoveEven,在这个函数内调用QGraphicsItem::mouseMoveEvent,默认的可能是调用的QGraphicsProxyWidget::mouseMoveEvent,这样的话鼠标事件被widget处理了,item没有取到,所以不会动你也可以试试创建的widget是一个按钮, QWidget* widget = new QPushButton;看你鼠标按上去按钮会不会动,如果会动,肯定鼠标事件被按钮处理了,按照上面的方法应该可以。
weixin_38067950 2019-09-19
  • 打赏
  • 举报
回复
这位兄台,你分析的很有道理啊不过还是出现了一点小问题,代码如下void XGraphicsProxyWidget::mouseMoveEvent ( QGraphicsSceneMouseEvent * event ){    if (event->type() == QEvent::GraphicsSceneMouseMove)    {        QGraphicsItem::mouseMoveEvent(event);        return ;    }    QGraphicsProxyWidget::mouseMoveEvent(event);}        m_pScene->clear();        QPushButton* widget = new QPushButton;//        QWidget *widget = new QWidget;        XGraphicsProxyWidget *proxy = new XGraphicsProxyWidget();        proxy->setWidget(widget);        proxy->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);       m_pScene->addItem(proxy);这里有个很奇怪的现象是,当用QPushButton时,移动有效,但是控件的颜色看上去很奇怪,是渐变的,不是同一个颜色但当用QWidget时,移动无效不知道什么原因
weixin_38107041 2019-09-19
  • 打赏
  • 举报
回复
你那个程序是不是有加皮肤效果,QPushButton类的样式被改掉了?我遇到的问题是QGraphicsWidget 从scene删掉后会留影...不知道为什么...有没有高手赐教
weixin_38107785 2019-09-19
  • 打赏
  • 举报
回复
你试下这样创建proxy:QGraphicsProxyWidget *proxy = new QGraphicsProxyWidget(QGraphicsItem* item);其参数为已创建的QGraphicsItem类指针然后proxy->setWidget(QWidget* widget);其实这个就是个代理窗口如果QGraphicsItem是可以移动的话那么proxy指向的窗口也是可以移动的。

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧