/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the documentation of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and Digia. For licensing terms and ** conditions see http://qt.digia.com/licensing. For further information ** use the contact form at http://qt.digia.com/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Digia gives you certain additional ** rights. These rights are described in the Digia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** ** $QT_END_LICENSE$ ** ****************************************************************************/ //! [0] void MyButton::paintEvent(QPaintEvent *) { QPainter painter(this); drawButton(&painter); } //! [0] //! [1] ba.at(0) = 'X'; //! [1] //! [2] ba[0] = 'X'; //! [2] //! [3] if (!cache.insert(key, object)) delete object; //! [3] //! [4] cache.insert(key, object); //! [4] //! [5] Q3Cache cache; cache.insert(widget->name(), widget); ... QWidget *foo = cache.take("foo"); if (foo) foo->show(); //! [5] //! [6] typedef QWidget *QWidgetPtr; QCache cache; cache.insert(widget->name(), new QWidgetPtr(widget)); ... QWidgetPtr *ptr = cache.take("foo"); if (ptr) { QWidget *foo = *ptr; delete ptr; foo->show(); } //! [6] //! [7] painter.setBrush(palette().brush(QPalette::Text)); //! [7] //! [8] QByteArray ba("Hello"); ba.size(); // returns 5 (the '\0' is not counted) ba.length(); // returns 5 ba.data()[5]; // returns '\0' //! [8] //! [9] dict.replace(key, value); //! [9] //! [10] delete hash.take(key); hash.insert(key, value); //! [10] //! [11] dict.remove(key, value); //! [11] //! [12] delete hash.take(key); //! [12] //! [13] dict.clear(); //! [13] //! [14] while (!hash.isEmpty()) { T *value = *hash.begin(); hash.erase(hash.begin()); delete value; } //! [14] //! [15] qDeleteAll(hash); hash.clear(); //! [15] //! [16] Q3DictIterator i(dict); while (i.current() != 0) { do_something(i.currentKey(), i.current()); ++i; } //! [16] //! [17] QHashIterator i(hash); while (i.hasNext()) { i.next(); // must come first do_something(i.key(), i.value()); } //! [17] //! [18] QList myWidgets = qFindChildren(myParent); //! [18] //! [19] list.replace(index, value); //! [19] //! [20] delete list[index]; list[index] = value; //! [20] //! [21] list.removeFirst(); //! [21] //! [22] delete list.takeFirst(); //! [22] //! [23] list.removeLast(); //! [23] //! [24] delete list.takeLast(); //! [24] //! [25] list.remove(index); //! [25] //! [26] delete list.takeAt(index); //! [26] //! [27] list.remove(value); //! [27] //! [28] int i = list.indexOf(value); if (i != -1) delete list.takeAt(i); //! [28] //! [29] list.remove(); //! [29] //! [30] QMutableListIterator i; ... delete i.value(); i.remove(); //! [30] //! [31] list.clear(); //! [31] //! [32] while (!list.isEmpty()) delete list.takeFirst(); //! [32] //! [33] qDeleteAll(list); list.clear(); //! [33] //! [34] QPtrList list; ... while (list.current() != 0) { do_something(list.current()); list.next(); } //! [34] //! [35] QList list; ... QListIterator i(list); while (i.hasNext()) do_something(i.next()); //! [35] //! [36] QPtrList list; ... QPtrListIterator i; while (i.current() != 0) { do_something(i.current()); i.next(); } //! [36] //! [37] QList list; ... QListIterator i(list); while (i.hasNext()) do_something(i.next()); //! [37] //! [38] queue.dequeue(); //! [38] //! [39] delete queue.dequeue(); //! [39] //! [40] queue.remove(); //! [40] //! [41] delete queue.dequeue(); //! [41] //! [42] queue.clear(); //! [42] //! [43] while (!queue.isEmpty()) delete queue.dequeue(); //! [43] //! [44] qDeleteAll(queue); queue.clear(); //! [44] //! [45] stack.pop(); //! [45] //! [46] delete stack.pop(); //! [46] //! [47] stack.remove(); //! [47] //! [48] delete stack.pop(); //! [48] //! [49] stack.clear(); //! [49] //! [50] while (!stack.isEmpty()) delete stack.pop(); //! [50] //! [51] qDeleteAll(stack); stack.clear(); //! [51] //! [52] vect.insert(i, ptr); //! [52] //! [53] delete vect[i]; vect[i] = ptr; //! [53] //! [54] vect.remove(i); //! [54] //! [55] delete vect[i]; vect[i] = 0; //! [55] //! [56] T *ptr = vect.take(i); //! [56] //! [57] T *ptr = vect[i]; vect[i] = 0; //! [57] //! [58] vect.resize(n) //! [58] //! [59] while (n > vect.size()) vect.append(0); while (n < vect.size() { T *ptr = vect.last(); vect.remove(vect.size() - 1); delete ptr; } //! [59] //! [60] vect.clear(); //! [60] //! [61] for (int i = 0; i < vect.size(); ++i) T *ptr = vect[i]; vect[i] = 0; delete ptr; } //! [61] //! [62] qDeleteAll(vect); vect.clear(); //! [62] //! [63] struct Shared { Shared() : count(1) {} void ref() { ++count; } bool deref() { return !--count; } uint count; }; //! [63] //! [63a] // Declare the object QSimpleRichText richText(text, font); // Set the width of the paragraph to w richText.setWidth(w); // Or set a resonable default size richText.adjustSize(); // Query for its used size int width = richText.widthUsed(); int height = richText.height(); // Draw richText.draw(painter, x, y, clipRect, colorGroup); //! [63a] //! [63b] // Declare the object QTextDocument doc; // If text is rich text, use setHtml() doc.setHtml(text); // Otherwise, use setPlainText() doc.setPlainText(text); // Set the width of the paragraph of text to w doc.setTextWidth(w); // Query for the used size int width = doc.idealWidth(); int height = doc.size().height(); // Draw painter.translate(x, y); doc.drawContents(painter, clipRect); // If you have a palette/colorgroup you can draw using lower-level functions: QAbstractTextDocumentLayout::PaintContext context; context.palette = myPalette; doc.documentLayout()->draw(painter, context); //! [63b] //! [63c] QSlider *slider; slider->style()->subControlRect(CC_Slider, sliderOption, SC_SliderHandle, slider); //! [63c] //! [64] QString greeting = "Hello"; const char *badData = greeting.toAscii().constData(); // data is invalid QByteArray asciiData = greeting.toAscii(); const char *goodData = asciiData.constData(); //! [64] //! [65] str.at(0) = 'X'; //! [65] //! [66] str[0] = 'X'; //! [66]