Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<!-- widgets-scene3d.qdoc -->
<title>Qt 3D: Scene3D QML with Widgets Example | Qt 3D 5.15.0</title>
<link rel="stylesheet" type="text/css" href="style/offline-simple.css" />
<script type="text/javascript">
document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css");
// loading style sheet breaks anchors that were jumped to before
// so force jumping to anchor again
setTimeout(function() {
var anchor = location.hash;
// need to jump to different anchor first (e.g. none)
location.hash = "#";
setTimeout(function() {
location.hash = anchor;
}, 0);
}, 0);
</script>
</head>
<body>
<div class="header" id="qtdocheader">
<div class="main">
<div class="main-rounded">
<div class="navigationbar">
<ul>
<li><a href="../qtdoc/index.html">Qt 5.15</a></li>
<li><a href="qt3d-index.html">Qt 3D</a></li>
<li>Qt 3D: Scene3D QML with Widgets Example</li>
<li id="buildversion"><a href="qt3d-index.html">Qt 5.15.0 Reference Documentation</a></li>
</ul>
</div>
</div>
<div class="content">
<div class="line">
<div class="content mainContent">
<div class="sidebar">
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#running-the-example">Running the Example</a></li>
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">Qt 3D: Scene3D QML with Widgets Example</h1>
<span class="subtitle"></span>
<!-- $$$widgets-scene3d-brief -->
<p>A QWidget-based application with a QML scene containing a 3D scene.</p>
<!-- @@@widgets-scene3d -->
<!-- $$$widgets-scene3d-description -->
<div class="descr"> <a name="details"></a>
<p class="centerAlign"><img src="images/widgets-scene3d.png" alt="" /></p><p><i>widgets-scene3D</i> demonstrates visualizing a 3D scene from a QWidget-based application using <a href="../qtquick/qquickwidget.html">QQuickWidget</a>.</p>
<p>The actual 3D scene is the same as in the <i>scene3d</i> example.</p>
<p>This approach is different from the one based on QWidget::createWindowContainer() demonstrated in <i>basicshapes-cpp</i> because it does not create a native window for the Qt 3D content. Rather, it uses <a href="../qtquick/qquickwidget.html">QQuickWidget</a>, a genuine QWidget subclass to compose the Qt Quick and Qt 3D content together with the traditional widgets.</p>
<p><b>Note: </b>Be aware of the performance implications. While this approach is very flexible in the sense that it allows mixing QML and Qt 3D with widgets without clipping or stacking issues, using <a href="qml-qtquick-scene3d-scene3d.html">Scene3D</a> in a <a href="../qtquick/qquickwidget.html">QQuickWidget</a> involves rendering to offscreen render targets (via framebuffer objects) twice. This is not always desirable for more complex scenes. For those the native window based approach shown in <i>basicshapes-cpp</i> will likely be a better choice.</p>
<a name="running-the-example"></a>
<h4 id="running-the-example">Running the Example</h4>
<p>To run the example from <a href="http://doc.qt.io/qtcreator/index.html">Qt Creator</a>, open the <b>Welcome</b> mode and select the example from <b>Examples</b>. For more information, visit <a href="http://doc.qt.io/qtcreator/creator-build-example-application.html">Building and Running an Example</a>.</p>
<p><a href="https://code.qt.io/cgit/qt/qt3d.git/tree/examples/qt3d/widgets-scene3d?h=5.15">Example project @ code.qt.io</a></p>
</div>
<!-- @@@widgets-scene3d -->
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<p>
<acronym title="Copyright">©</acronym> 2020 The Qt Company Ltd.
Documentation contributions included herein are the copyrights of
their respective owners.<br/> The documentation provided herein is licensed under the terms of the <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation License version 1.3</a> as published by the Free Software Foundation.<br/> Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property
of their respective owners. </p>
</div>
</body>
</html>