source: trunk/examples/activeqt/opengl/globjwin.cpp@ 641

Last change on this file since 641 was 561, checked in by Dmitry A. Kuminov, 15 years ago

trunk: Merged in qt 4.6.1 sources.

File size: 3.9 KB
Line 
1/****************************************************************************
2**
3** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
4** All rights reserved.
5** Contact: Nokia Corporation ([email protected])
6**
7** This file is part of the examples of the Qt Toolkit.
8**
9** $QT_BEGIN_LICENSE:LGPL$
10** Commercial Usage
11** Licensees holding valid Qt Commercial licenses may use this file in
12** accordance with the Qt Commercial License Agreement provided with the
13** Software or, alternatively, in accordance with the terms contained in
14** a written agreement between you and Nokia.
15**
16** GNU Lesser General Public License Usage
17** Alternatively, this file may be used under the terms of the GNU Lesser
18** General Public License version 2.1 as published by the Free Software
19** Foundation and appearing in the file LICENSE.LGPL included in the
20** packaging of this file. Please review the following information to
21** ensure the GNU Lesser General Public License version 2.1 requirements
22** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23**
24** In addition, as a special exception, Nokia gives you certain additional
25** rights. These rights are described in the Nokia Qt LGPL Exception
26** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27**
28** GNU General Public License Usage
29** Alternatively, this file may be used under the terms of the GNU
30** General Public License version 3.0 as published by the Free Software
31** Foundation and appearing in the file LICENSE.GPL included in the
32** packaging of this file. Please review the following information to
33** ensure the GNU General Public License version 3.0 requirements will be
34** met: http://www.gnu.org/copyleft/gpl.html.
35**
36** If you have questions regarding the use of this file, please contact
37** Nokia at [email protected].
38** $QT_END_LICENSE$
39**
40****************************************************************************/
41
42#include "globjwin.h"
43#include "glbox.h"
44#include <QPushButton>
45#include <QSlider>
46#include <QLayout>
47#include <QFrame>
48#include <QMenuBar>
49#include <QMenu>
50#include <QApplication>
51
52
53GLObjectWindow::GLObjectWindow(QWidget* parent)
54 : QWidget(parent)
55{
56
57 // Create a menu
58 QMenu *file = new QMenu( this );
59 file->addAction( "Exit", qApp, SLOT(quit())/*, CTRL+Key_Q*/);
60
61 // Create a menu bar
62 QMenuBar *m = new QMenuBar( this );
63 m->addMenu(file)->setText("&File");
64
65 // Create a nice frame to put around the OpenGL widget
66 QFrame* f = new QFrame(this);
67 f->setFrameStyle( QFrame::Sunken | QFrame::Panel );
68 f->setLineWidth( 2 );
69
70 // Create our OpenGL widget
71 GLBox* c = new GLBox( f, "glbox");
72
73 // Create the three sliders; one for each rotation axis
74 QSlider* x = new QSlider(Qt::Vertical, this);
75 x->setMaximum(360);
76 x->setPageStep(60);
77 x->setTickPosition( QSlider::TicksLeft );
78 QObject::connect( x, SIGNAL(valueChanged(int)),c,SLOT(setXRotation(int)) );
79
80 QSlider* y = new QSlider(Qt::Vertical, this);
81 y->setMaximum(360);
82 y->setPageStep(60);
83 y->setTickPosition( QSlider::TicksLeft );
84 QObject::connect( y, SIGNAL(valueChanged(int)),c,SLOT(setYRotation(int)) );
85
86 QSlider* z = new QSlider(Qt::Vertical, this);
87 z->setMaximum(360);
88 z->setPageStep(60);
89 z->setTickPosition( QSlider::TicksLeft );
90 QObject::connect( z, SIGNAL(valueChanged(int)),c,SLOT(setZRotation(int)) );
91
92 // Now that we have all the widgets, put them into a nice layout
93
94 // Top level layout, puts the sliders to the left of the frame/GL widget
95 QHBoxLayout* hlayout = new QHBoxLayout(this);
96
97 // Put the sliders on top of each other
98 QVBoxLayout* vlayout = new QVBoxLayout();
99 vlayout->addWidget( x );
100 vlayout->addWidget( y );
101 vlayout->addWidget( z );
102
103 // Put the GL widget inside the frame
104 QHBoxLayout* flayout = new QHBoxLayout(f);
105 flayout->setMargin(0);
106 flayout->addWidget( c, 1 );
107
108 hlayout->setMenuBar( m );
109 hlayout->addLayout( vlayout );
110 hlayout->addWidget( f, 1 );
111}
Note: See TracBrowser for help on using the repository browser.