Mercurial > projects > qtd
comparison examples/opengl/hellogl/window.d @ 357:9784459f0750
An attempt (failed due to optlink) to improve locality of declarations exported from QtD executables
Q_CLASSINFO implementation
Now Qtd can be built on Windows
author | Max Samukha <maxter@spambox.com> |
---|---|
date | Wed, 02 Jun 2010 19:38:05 +0300 |
parents | 7a3c43424dca |
children |
comparison
equal
deleted
inserted
replaced
356:12cec2d14e1c | 357:9784459f0750 |
---|---|
38 import qt.gui.QWidget; | 38 import qt.gui.QWidget; |
39 import qt.gui.QSlider; | 39 import qt.gui.QSlider; |
40 import qt.gui.QHBoxLayout; | 40 import qt.gui.QHBoxLayout; |
41 | 41 |
42 import glwidget; | 42 import glwidget; |
43 import std.stdio; | |
43 | 44 |
44 class Window : public QWidget | 45 class Window : public QWidget |
45 { | 46 { |
46 public: | 47 public: |
47 this() | 48 this() |
48 { | 49 { |
49 glWidget = new GLWidget; | 50 glWidget = new GLWidget; |
50 | 51 |
51 xSlider = createSlider(); | 52 xSlider = createSlider(); |
52 ySlider = createSlider(); | 53 ySlider = createSlider(); |
53 zSlider = createSlider(); | 54 zSlider = createSlider(); |
54 | 55 |
55 connect(xSlider, "valueChanged", glWidget, "setXRotation"); | 56 connect(xSlider, "valueChanged", glWidget, "setXRotation"); |
56 connect(glWidget, "xRotationChanged", xSlider, "setValue"); | 57 connect(glWidget, "xRotationChanged", xSlider, "setValue"); |
57 connect(ySlider, "valueChanged", glWidget, "setYRotation"); | 58 connect(ySlider, "valueChanged", glWidget, "setYRotation"); |
58 connect(glWidget, "yRotationChanged", ySlider, "setValue"); | 59 connect(glWidget, "yRotationChanged", ySlider, "setValue"); |
59 connect(zSlider, "valueChanged", glWidget, "setZRotation"); | 60 connect(zSlider, "valueChanged", glWidget, "setZRotation"); |
60 connect(glWidget, "zRotationChanged", zSlider, "setValue"); | 61 connect(glWidget, "zRotationChanged", zSlider, "setValue"); |
61 | 62 writeln("connected"); |
63 | |
62 QHBoxLayout mainLayout = new QHBoxLayout; | 64 QHBoxLayout mainLayout = new QHBoxLayout; |
63 mainLayout.addWidget(glWidget); | 65 mainLayout.addWidget(glWidget); |
64 mainLayout.addWidget(xSlider); | 66 mainLayout.addWidget(xSlider); |
65 mainLayout.addWidget(ySlider); | 67 mainLayout.addWidget(ySlider); |
66 mainLayout.addWidget(zSlider); | 68 mainLayout.addWidget(zSlider); |
67 setLayout(mainLayout); | 69 setLayout(mainLayout); |
68 | 70 |
69 xSlider.setValue(15 * 16); | 71 xSlider.setValue(15 * 16); |
70 ySlider.setValue(345 * 16); | 72 ySlider.setValue(345 * 16); |
71 zSlider.setValue(0 * 16); | 73 zSlider.setValue(0 * 16); |
72 setWindowTitle(tr("Hello GL")); | 74 setWindowTitle(tr("Hello GL")); |
73 } | 75 } |
74 | 76 |
75 private: | 77 private: |
76 QSlider createSlider() | 78 QSlider createSlider() |
77 { | 79 { |
78 auto slider = new QSlider(Qt.Vertical); | 80 auto slider = new QSlider(Qt.Vertical); |
79 slider.setRange(0, 360 * 16); | 81 slider.setRange(0, 360 * 16); |
81 slider.setPageStep(15 * 16); | 83 slider.setPageStep(15 * 16); |
82 slider.setTickInterval(15 * 16); | 84 slider.setTickInterval(15 * 16); |
83 slider.setTickPosition(QSlider.TicksRight); | 85 slider.setTickPosition(QSlider.TicksRight); |
84 return slider; | 86 return slider; |
85 } | 87 } |
86 | 88 |
87 GLWidget glWidget; | 89 GLWidget glWidget; |
88 QSlider xSlider; | 90 QSlider xSlider; |
89 QSlider ySlider; | 91 QSlider ySlider; |
90 QSlider zSlider; | 92 QSlider zSlider; |
91 | 93 |
92 mixin Q_OBJECT; | 94 mixin Q_OBJECT; |
93 } | 95 } |