diff options
author | Lars Knoll <lars.knoll@nokia.com> | 2009-03-23 09:34:13 (GMT) |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2009-03-23 09:34:13 (GMT) |
commit | 67ad0519fd165acee4a4d2a94fa502e9e4847bd0 (patch) | |
tree | 1dbf50b3dff8d5ca7e9344733968c72704eb15ff /examples/uitools | |
download | Qt-67ad0519fd165acee4a4d2a94fa502e9e4847bd0.zip Qt-67ad0519fd165acee4a4d2a94fa502e9e4847bd0.tar.gz Qt-67ad0519fd165acee4a4d2a94fa502e9e4847bd0.tar.bz2 |
Long live Qt!
Diffstat (limited to 'examples/uitools')
-rw-r--r-- | examples/uitools/multipleinheritance/calculatorform.cpp | 66 | ||||
-rw-r--r-- | examples/uitools/multipleinheritance/calculatorform.h | 63 | ||||
-rw-r--r-- | examples/uitools/multipleinheritance/calculatorform.ui | 303 | ||||
-rw-r--r-- | examples/uitools/multipleinheritance/main.cpp | 53 | ||||
-rw-r--r-- | examples/uitools/multipleinheritance/multipleinheritance.pro | 11 | ||||
-rw-r--r-- | examples/uitools/textfinder/forms/input.txt | 9 | ||||
-rw-r--r-- | examples/uitools/textfinder/forms/textfinder.ui | 89 | ||||
-rw-r--r-- | examples/uitools/textfinder/main.cpp | 56 | ||||
-rw-r--r-- | examples/uitools/textfinder/textfinder.cpp | 156 | ||||
-rw-r--r-- | examples/uitools/textfinder/textfinder.h | 75 | ||||
-rw-r--r-- | examples/uitools/textfinder/textfinder.pro | 10 | ||||
-rw-r--r-- | examples/uitools/textfinder/textfinder.qrc | 6 | ||||
-rw-r--r-- | examples/uitools/uitools.pro | 10 |
13 files changed, 907 insertions, 0 deletions
diff --git a/examples/uitools/multipleinheritance/calculatorform.cpp b/examples/uitools/multipleinheritance/calculatorform.cpp new file mode 100644 index 0000000..d2241d2 --- /dev/null +++ b/examples/uitools/multipleinheritance/calculatorform.cpp @@ -0,0 +1,66 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, 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. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtGui> +#include "calculatorform.h" + + +//! [0] +CalculatorForm::CalculatorForm(QWidget *parent) + : QWidget(parent) +{ + setupUi(this); +} +//! [0] + +//! [1] +void CalculatorForm::on_inputSpinBox1_valueChanged(int value) +{ + outputWidget->setText(QString::number(value + inputSpinBox2->value())); +} +//! [1] + +//! [2] +void CalculatorForm::on_inputSpinBox2_valueChanged(int value) +{ + outputWidget->setText(QString::number(value + inputSpinBox1->value())); +} +//! [2] diff --git a/examples/uitools/multipleinheritance/calculatorform.h b/examples/uitools/multipleinheritance/calculatorform.h new file mode 100644 index 0000000..2483244 --- /dev/null +++ b/examples/uitools/multipleinheritance/calculatorform.h @@ -0,0 +1,63 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, 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. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef CALCULATORFORM_H +#define CALCULATORFORM_H + +//! [0] +#include "ui_calculatorform.h" +//! [0] + +//! [1] +class CalculatorForm : public QWidget, private Ui::CalculatorForm +{ + Q_OBJECT + +public: + CalculatorForm(QWidget *parent = 0); + +private slots: + void on_inputSpinBox1_valueChanged(int value); + void on_inputSpinBox2_valueChanged(int value); +}; +//! [1] + +#endif diff --git a/examples/uitools/multipleinheritance/calculatorform.ui b/examples/uitools/multipleinheritance/calculatorform.ui new file mode 100644 index 0000000..dda0e62 --- /dev/null +++ b/examples/uitools/multipleinheritance/calculatorform.ui @@ -0,0 +1,303 @@ +<ui version="4.0" > + <author></author> + <comment></comment> + <exportmacro></exportmacro> + <class>CalculatorForm</class> + <widget class="QWidget" name="CalculatorForm" > + <property name="objectName" > + <string notr="true" >CalculatorForm</string> + </property> + <property name="geometry" > + <rect> + <x>0</x> + <y>0</y> + <width>276</width> + <height>98</height> + </rect> + </property> + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>5</hsizetype> + <vsizetype>5</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="windowTitle" > + <string>Calculator Builder</string> + </property> + <layout class="QGridLayout" > + <property name="objectName" > + <string notr="true" /> + </property> + <property name="margin" > + <number>9</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item row="0" column="0" > + <layout class="QHBoxLayout" > + <property name="objectName" > + <string notr="true" /> + </property> + <property name="margin" > + <number>1</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <layout class="QVBoxLayout" > + <property name="objectName" > + <string notr="true" /> + </property> + <property name="margin" > + <number>1</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QLabel" name="label" > + <property name="objectName" > + <string notr="true" >label</string> + </property> + <property name="geometry" > + <rect> + <x>1</x> + <y>1</y> + <width>45</width> + <height>19</height> + </rect> + </property> + <property name="text" > + <string>Input 1</string> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="inputSpinBox1" > + <property name="objectName" > + <string notr="true" >inputSpinBox1</string> + </property> + <property name="geometry" > + <rect> + <x>1</x> + <y>26</y> + <width>45</width> + <height>25</height> + </rect> + </property> + <property name="mouseTracking" > + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QLabel" name="label_3" > + <property name="objectName" > + <string notr="true" >label_3</string> + </property> + <property name="geometry" > + <rect> + <x>54</x> + <y>1</y> + <width>7</width> + <height>52</height> + </rect> + </property> + <property name="text" > + <string>+</string> + </property> + <property name="alignment" > + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> + <item> + <layout class="QVBoxLayout" > + <property name="objectName" > + <string notr="true" /> + </property> + <property name="margin" > + <number>1</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QLabel" name="label_2" > + <property name="objectName" > + <string notr="true" >label_2</string> + </property> + <property name="geometry" > + <rect> + <x>1</x> + <y>1</y> + <width>45</width> + <height>19</height> + </rect> + </property> + <property name="text" > + <string>Input 2</string> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="inputSpinBox2" > + <property name="objectName" > + <string notr="true" >inputSpinBox2</string> + </property> + <property name="geometry" > + <rect> + <x>1</x> + <y>26</y> + <width>45</width> + <height>25</height> + </rect> + </property> + <property name="mouseTracking" > + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QLabel" name="label_3_2" > + <property name="objectName" > + <string notr="true" >label_3_2</string> + </property> + <property name="geometry" > + <rect> + <x>120</x> + <y>1</y> + <width>7</width> + <height>52</height> + </rect> + </property> + <property name="text" > + <string>=</string> + </property> + <property name="alignment" > + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> + <item> + <layout class="QVBoxLayout" > + <property name="objectName" > + <string notr="true" /> + </property> + <property name="margin" > + <number>1</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QLabel" name="label_2_2_2" > + <property name="objectName" > + <string notr="true" >label_2_2_2</string> + </property> + <property name="geometry" > + <rect> + <x>1</x> + <y>1</y> + <width>37</width> + <height>17</height> + </rect> + </property> + <property name="text" > + <string>Output</string> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="outputWidget" > + <property name="objectName" > + <string notr="true" >outputWidget</string> + </property> + <property name="geometry" > + <rect> + <x>1</x> + <y>24</y> + <width>37</width> + <height>27</height> + </rect> + </property> + <property name="frameShape" > + <enum>QFrame::Box</enum> + </property> + <property name="frameShadow" > + <enum>QFrame::Sunken</enum> + </property> + <property name="text" > + <string>0</string> + </property> + <property name="alignment" > + <set>Qt::AlignAbsolute|Qt::AlignBottom|Qt::AlignCenter|Qt::AlignHCenter|Qt::AlignHorizontal_Mask|Qt::AlignJustify|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignRight|Qt::AlignTop|Qt::AlignTrailing|Qt::AlignVCenter|Qt::AlignVertical_Mask</set> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </item> + <item row="1" column="0" > + <spacer> + <property name="objectName" > + <string notr="true" >verticalSpacer</string> + </property> + <property name="geometry" > + <rect> + <x>85</x> + <y>69</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" > + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="1" > + <spacer> + <property name="objectName" > + <string notr="true" >horizontalSpacer</string> + </property> + <property name="geometry" > + <rect> + <x>188</x> + <y>26</y> + <width>79</width> + <height>20</height> + </rect> + </property> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + <pixmapfunction></pixmapfunction> + <resources/> + <connections/> +</ui> diff --git a/examples/uitools/multipleinheritance/main.cpp b/examples/uitools/multipleinheritance/main.cpp new file mode 100644 index 0000000..2ed0016 --- /dev/null +++ b/examples/uitools/multipleinheritance/main.cpp @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, 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. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QApplication> +#include "calculatorform.h" + +//! [0] +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + CalculatorForm calculator; + calculator.show(); + return app.exec(); +} +//! [0] diff --git a/examples/uitools/multipleinheritance/multipleinheritance.pro b/examples/uitools/multipleinheritance/multipleinheritance.pro new file mode 100644 index 0000000..92dda2e --- /dev/null +++ b/examples/uitools/multipleinheritance/multipleinheritance.pro @@ -0,0 +1,11 @@ +#! [0] +SOURCES = calculatorform.cpp main.cpp +HEADERS = calculatorform.h +FORMS = calculatorform.ui +#! [0] + +# install +target.path = $$[QT_INSTALL_EXAMPLES]/uitools/multipleinheritance +sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.pro +sources.path = $$[QT_INSTALL_EXAMPLES]/uitools/multipleinheritance +INSTALLS += target sources diff --git a/examples/uitools/textfinder/forms/input.txt b/examples/uitools/textfinder/forms/input.txt new file mode 100644 index 0000000..fae542f --- /dev/null +++ b/examples/uitools/textfinder/forms/input.txt @@ -0,0 +1,9 @@ +These forms are processed at run-time to produce dynamically-generated user interfaces. +In order to generate a form at run-time, a resource file containing a .ui file is needed. +Applications that use the form handling classes need to be configured to be built against +the QtUiTools module. This is done by including the following declaration in a qmake project +file to ensure that the application is compiled and linked appropriately. A form loader object, +provided by the QUiLoader class, is used to construct the user interface. This user interface +can be retrieved from any QIODevice; for example, a QFile object can be used to obtain a form +stored in a project's resources. The QUiLoader::load() function takes the user interface +description contained in the file and constructs the form widget.
\ No newline at end of file diff --git a/examples/uitools/textfinder/forms/textfinder.ui b/examples/uitools/textfinder/forms/textfinder.ui new file mode 100644 index 0000000..af05192 --- /dev/null +++ b/examples/uitools/textfinder/forms/textfinder.ui @@ -0,0 +1,89 @@ +<ui version="4.0" > + <class>Form</class> + <widget class="QWidget" name="Form" > + <property name="geometry" > + <rect> + <x>0</x> + <y>0</y> + <width>378</width> + <height>158</height> + </rect> + </property> + <property name="windowTitle" > + <string>Find Text</string> + </property> + <layout class="QVBoxLayout" > + <property name="margin" > + <number>9</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <layout class="QGridLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item row="0" column="1" > + <widget class="QLineEdit" name="lineEdit" /> + </item> + <item row="0" column="0" > + <widget class="QLabel" name="searchLabel" > + <property name="text" > + <string>&Keyword:</string> + </property> + <property name="buddy" > + <cstring>lineEdit</cstring> + </property> + </widget> + </item> + <item row="0" column="2" > + <widget class="QPushButton" name="findButton" > + <property name="text" > + <string>&Find</string> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QTextEdit" name="textEdit" /> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" > + <size> + <width>20</width> + <height>16</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + <resources/> + <connections> + <connection> + <sender>lineEdit</sender> + <signal>returnPressed()</signal> + <receiver>findButton</receiver> + <slot>animateClick()</slot> + <hints> + <hint type="sourcelabel" > + <x>261</x> + <y>17</y> + </hint> + <hint type="destinationlabel" > + <x>320</x> + <y>17</y> + </hint> + </hints> + </connection> + </connections> +</ui> diff --git a/examples/uitools/textfinder/main.cpp b/examples/uitools/textfinder/main.cpp new file mode 100644 index 0000000..dac93c6 --- /dev/null +++ b/examples/uitools/textfinder/main.cpp @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, 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. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QApplication> +#include "textfinder.h" + +//! [0] +int main(int argc, char *argv[]) +{ + Q_INIT_RESOURCE(textfinder); + QApplication app(argc, argv); + + TextFinder *textFinder = new TextFinder; + textFinder->show(); + + return app.exec(); +} +//! [0] diff --git a/examples/uitools/textfinder/textfinder.cpp b/examples/uitools/textfinder/textfinder.cpp new file mode 100644 index 0000000..d4b5d9e --- /dev/null +++ b/examples/uitools/textfinder/textfinder.cpp @@ -0,0 +1,156 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, 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. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtUiTools> +#include <QtGui> +#include "textfinder.h" + +//! [0] +TextFinder::TextFinder(QWidget *parent) + : QWidget(parent) +{ + QWidget *formWidget = loadUiFile(); + +//! [1] + ui_findButton = qFindChild<QPushButton*>(this, "findButton"); + ui_textEdit = qFindChild<QTextEdit*>(this, "textEdit"); + ui_lineEdit = qFindChild<QLineEdit*>(this, "lineEdit"); +//! [0] //! [1] + +//! [2] + QMetaObject::connectSlotsByName(this); +//! [2] + +//! [3a] + loadTextFile(); +//! [3a] + +//! [3b] + QVBoxLayout *layout = new QVBoxLayout; + layout->addWidget(formWidget); + setLayout(layout); +//! [3b] + +//! [3c] + setWindowTitle(tr("Text Finder")); + isFirstTime = true; +} +//! [3c] + +//! [4] +QWidget* TextFinder::loadUiFile() +{ + QUiLoader loader; + + QFile file(":/forms/textfinder.ui"); + file.open(QFile::ReadOnly); + + QWidget *formWidget = loader.load(&file, this); + file.close(); + + return formWidget; +} +//! [4] + +//! [5] +void TextFinder::loadTextFile() +{ + QFile inputFile(":/forms/input.txt"); + inputFile.open(QIODevice::ReadOnly); + QTextStream in(&inputFile); + QString line = in.readAll(); + inputFile.close(); + + ui_textEdit->append(line); + ui_textEdit->setUndoRedoEnabled(false); + ui_textEdit->setUndoRedoEnabled(true); +} +//! [5] + +//! [6] //! [7] +void TextFinder::on_findButton_clicked() +{ + QString searchString = ui_lineEdit->text(); + QTextDocument *document = ui_textEdit->document(); + + bool found = false; + + if (isFirstTime == false) + document->undo(); + + if (searchString == "") { + QMessageBox::information(this, tr("Empty Search Field"), + "The search field is empty. Please enter a word and click Find."); + } else { + + QTextCursor highlightCursor(document); + QTextCursor cursor(document); + + cursor.beginEditBlock(); +//! [6] + + QTextCharFormat plainFormat(highlightCursor.charFormat()); + QTextCharFormat colorFormat = plainFormat; + colorFormat.setForeground(Qt::red); + + while (!highlightCursor.isNull() && !highlightCursor.atEnd()) { + highlightCursor = document->find(searchString, highlightCursor, QTextDocument::FindWholeWords); + + if (!highlightCursor.isNull()) { + found = true; + highlightCursor.movePosition(QTextCursor::WordRight, + QTextCursor::KeepAnchor); + highlightCursor.mergeCharFormat(colorFormat); + } + } + +//! [8] + cursor.endEditBlock(); +//! [7] //! [9] + isFirstTime = false; + + if (found == false) { + QMessageBox::information(this, tr("Word Not Found"), + "Sorry, the word cannot be found."); + } + } +} +//! [8] //! [9] diff --git a/examples/uitools/textfinder/textfinder.h b/examples/uitools/textfinder/textfinder.h new file mode 100644 index 0000000..c4880dc --- /dev/null +++ b/examples/uitools/textfinder/textfinder.h @@ -0,0 +1,75 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** 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, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, 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. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef TEXTFINDER_H +#define TEXTFINDER_H + +#include <QWidget> + +QT_BEGIN_NAMESPACE +class QPushButton; +class QTextEdit; +class QLineEdit; +QT_END_NAMESPACE + +//! [0] +class TextFinder : public QWidget +{ + Q_OBJECT + +public: + TextFinder(QWidget *parent = 0); + +private slots: + void on_findButton_clicked(); + +private: + QWidget* loadUiFile(); + void loadTextFile(); + + QPushButton *ui_findButton; + QTextEdit *ui_textEdit; + QLineEdit *ui_lineEdit; + bool isFirstTime; +}; +//! [0] + +#endif diff --git a/examples/uitools/textfinder/textfinder.pro b/examples/uitools/textfinder/textfinder.pro new file mode 100644 index 0000000..9d2a96d --- /dev/null +++ b/examples/uitools/textfinder/textfinder.pro @@ -0,0 +1,10 @@ +CONFIG += uitools +HEADERS = textfinder.h +RESOURCES = textfinder.qrc +SOURCES = textfinder.cpp main.cpp + +# install +target.path = $$[QT_INSTALL_EXAMPLES]/uitools/textfinder +sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.pro forms +sources.path = $$[QT_INSTALL_EXAMPLES]/uitools/textfinder +INSTALLS += target sources diff --git a/examples/uitools/textfinder/textfinder.qrc b/examples/uitools/textfinder/textfinder.qrc new file mode 100644 index 0000000..a4cea8a --- /dev/null +++ b/examples/uitools/textfinder/textfinder.qrc @@ -0,0 +1,6 @@ +<!DOCTYPE RCC><RCC version="1.0"> +<qresource> + <file>forms/textfinder.ui</file> + <file>forms/input.txt</file> +</qresource> +</RCC>
\ No newline at end of file diff --git a/examples/uitools/uitools.pro b/examples/uitools/uitools.pro new file mode 100644 index 0000000..ddec822 --- /dev/null +++ b/examples/uitools/uitools.pro @@ -0,0 +1,10 @@ +TEMPLATE = subdirs +SUBDIRS = multipleinheritance + +!wince*:contains(QT_BUILD_PARTS, tools): SUBDIRS += textfinder + +# install +target.path = $$[QT_INSTALL_EXAMPLES]/uitools +sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS uitools.pro README +sources.path = $$[QT_INSTALL_EXAMPLES]/uitools +INSTALLS += target sources |