为了账号安全,请及时绑定邮箱和手机立即绑定

Qt5。在QML中嵌入QWidget对象

Qt5。在QML中嵌入QWidget对象

我正在使用Qt5 beta,并尝试将基于QWidget的对象嵌入QML。目标是尽可能使用QML,并且仅在QML无法满足我需要的地方使用QWidget对象。我找到了一个链接,说明如何针对Qt4.7进行此操作,但没有找到任何信息说明如何在Qt5中进行此操作。http://doc.qt.digia.com/4.7/declarative-cppextensions-qwidgets.htmlQt5示例文件夹中的以下位置也提供了相同的示例:示例\ qtquick1 \声明性\ cppextensions \ qwidgets不幸的是,此示例使用QtQuick 1而不是QtQuick 2,并且我想使用Qt5的新功能。我实际上想嵌入一个qwt小部件,但是第一步,我很乐意嵌入任何基于QWidget的简单对象。有人可以帮助我让示例在Qt5 / QtQuick 2下工作吗?
查看完整描述

3 回答

?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

Qt Quick 2使用场景图在GPU上高效渲染。不幸的是,这使得无法将经典小部件嵌入场景。QGraphicsProxyWidget仅在Qt Quick 1 的帮助下嵌入此类小部件的旧方法只能在Qt Quick 1上使用,因为在内部它使用a QGraphicsView来处理所有繁重的工作,QGraphicsProxyWidget并且打算与之一起使用。


到目前为止,还没有计划将经典QWidget嵌入到我所知道的场景图中。我认为这不太可能改变,因为QPainter的概念,用于经典小部件的绘画框架和新的场景图不能很好地相互配合。


有一些努力来开发专门针对QML需求量身定制的新窗口小部件集,但是它们都不像经典窗口小部件那样强大和成熟。最突出的是QML Quick Controls,自5.1版起与Qt捆绑在一起。


如果您真的依赖QWT,那么我的建议是暂时坚持使用Qt Quick 1.1。它仍然与Qt 5捆绑在一起,可能适用于像您这样的情况。这样一来,您将不会利用新的场景图。


查看完整回答
反对 回复 2019-10-19
  • 3 回答
  • 0 关注
  • 2874 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信