source: trunk/doc/src/snippets/itemselection/main.cpp@ 5

Last change on this file since 5 was 2, checked in by Dmitry A. Kuminov, 16 years ago

Initially imported qt-all-opensource-src-4.5.1 from Trolltech.

File size: 3.8 KB
Line 
1/****************************************************************************
2**
3** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
4** Contact: Qt Software Information ([email protected])
5**
6** This file is part of the documentation of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:LGPL$
9** Commercial Usage
10** Licensees holding valid Qt Commercial licenses may use this file in
11** accordance with the Qt Commercial License Agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and Nokia.
14**
15** GNU Lesser General Public License Usage
16** Alternatively, this file may be used under the terms of the GNU Lesser
17** General Public License version 2.1 as published by the Free Software
18** Foundation and appearing in the file LICENSE.LGPL included in the
19** packaging of this file. Please review the following information to
20** ensure the GNU Lesser General Public License version 2.1 requirements
21** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
22**
23** In addition, as a special exception, Nokia gives you certain
24** additional rights. These rights are described in the Nokia Qt LGPL
25** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
26** 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 are unsure which license is appropriate for your use, please
37** contact the sales department at [email protected].
38** $QT_END_LICENSE$
39**
40****************************************************************************/
41
42/*
43 main.cpp
44
45 A simple example that shows how selections can be used directly on a model.
46 It shows the result of some selections made using a table view.
47*/
48
49#include <QApplication>
50#include <QItemSelection>
51#include <QItemSelectionModel>
52#include <QTableView>
53
54#include "model.h"
55
56int main(int argc, char *argv[])
57{
58 QApplication app(argc, argv);
59
60//! [0]
61 TableModel *model = new TableModel(8, 4, &app);
62
63 QTableView *table = new QTableView(0);
64 table->setModel(model);
65
66 QItemSelectionModel *selectionModel = table->selectionModel();
67//! [0] //! [1]
68 QModelIndex topLeft;
69 QModelIndex bottomRight;
70
71 topLeft = model->index(0, 0, QModelIndex());
72 bottomRight = model->index(5, 2, QModelIndex());
73//! [1]
74
75//! [2]
76 QItemSelection selection(topLeft, bottomRight);
77 selectionModel->select(selection, QItemSelectionModel::Select);
78//! [2]
79
80//! [3]
81 QItemSelection toggleSelection;
82
83 topLeft = model->index(2, 1, QModelIndex());
84 bottomRight = model->index(7, 3, QModelIndex());
85 toggleSelection.select(topLeft, bottomRight);
86
87 selectionModel->select(toggleSelection, QItemSelectionModel::Toggle);
88//! [3]
89
90//! [4]
91 QItemSelection columnSelection;
92
93 topLeft = model->index(0, 1, QModelIndex());
94 bottomRight = model->index(0, 2, QModelIndex());
95
96 columnSelection.select(topLeft, bottomRight);
97
98 selectionModel->select(columnSelection,
99 QItemSelectionModel::Select | QItemSelectionModel::Columns);
100
101 QItemSelection rowSelection;
102
103 topLeft = model->index(0, 0, QModelIndex());
104 bottomRight = model->index(1, 0, QModelIndex());
105
106 rowSelection.select(topLeft, bottomRight);
107
108 selectionModel->select(rowSelection,
109 QItemSelectionModel::Select | QItemSelectionModel::Rows);
110//! [4]
111
112 table->setWindowTitle("Selected items in a table model");
113 table->show();
114 table->resize(460, 280);
115 return app.exec();
116}
Note: See TracBrowser for help on using the repository browser.