Remove unused documentation code snippets
Modules: - Core - Gui - Widgets - Open(Widgets) - PrintSupport - Sql - Network - Concurrent - Testlib Pick-to: 6.5 Change-Id: I63e58c01bec4bd162486020f0085227fdaa83b18 Reviewed-by: Ahmad Samir <a.samirh78@gmail.com> Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
parent
94279afff8
commit
69d4ecd6ef
@ -226,13 +226,6 @@ foreach (const QString &str, map.uniqueKeys()) {
|
|||||||
//! [20]
|
//! [20]
|
||||||
|
|
||||||
|
|
||||||
//! [21]
|
|
||||||
forever {
|
|
||||||
...
|
|
||||||
}
|
|
||||||
//! [21]
|
|
||||||
|
|
||||||
|
|
||||||
//! [22]
|
//! [22]
|
||||||
CONFIG += no_keywords
|
CONFIG += no_keywords
|
||||||
//! [22]
|
//! [22]
|
||||||
|
@ -22,9 +22,3 @@ class MyInstance : public QObject
|
|||||||
//! [2]
|
//! [2]
|
||||||
Q_IMPORT_PLUGIN(qjpeg)
|
Q_IMPORT_PLUGIN(qjpeg)
|
||||||
//! [2]
|
//! [2]
|
||||||
|
|
||||||
|
|
||||||
//! [3]
|
|
||||||
TEMPLATE = app
|
|
||||||
QTPLUGIN += qjpeg qgif # image formats
|
|
||||||
//! [3]
|
|
||||||
|
@ -111,23 +111,3 @@ QSet<QString>::const_iterator it = std::find_if(set.cbegin(), set.cend(), predic
|
|||||||
if (it != set.constEnd())
|
if (it != set.constEnd())
|
||||||
cout << "Found Jeanette" << endl;
|
cout << "Found Jeanette" << endl;
|
||||||
//! [12]
|
//! [12]
|
||||||
|
|
||||||
|
|
||||||
//! [13]
|
|
||||||
QSet<QString> set;
|
|
||||||
set << "red" << "green" << "blue" << ... << "black";
|
|
||||||
|
|
||||||
QList<QString> list = set.toList();
|
|
||||||
std::sort(list.begin(), list.end());
|
|
||||||
//! [13]
|
|
||||||
|
|
||||||
|
|
||||||
//! [14]
|
|
||||||
QStringList list;
|
|
||||||
list << "Julia" << "Mike" << "Mike" << "Julia" << "Julia";
|
|
||||||
|
|
||||||
QSet<QString> set = QSet<QString>::fromList(list);
|
|
||||||
set.contains("Julia"); // returns true
|
|
||||||
set.contains("Mike"); // returns true
|
|
||||||
set.size(); // returns 2
|
|
||||||
//! [14]
|
|
||||||
|
@ -15,16 +15,3 @@ MyClass::MyClass() : BaseClass()
|
|||||||
...
|
...
|
||||||
}
|
}
|
||||||
//! [5]
|
//! [5]
|
||||||
|
|
||||||
|
|
||||||
//! [6]
|
|
||||||
int main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
QApplication app(argc, argv);
|
|
||||||
Q_INIT_RESOURCE(graphlib);
|
|
||||||
|
|
||||||
QFile file(":/graph.png");
|
|
||||||
...
|
|
||||||
return app.exec();
|
|
||||||
}
|
|
||||||
//! [6]
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
#include <QPropertyAnimation>
|
#include <QPropertyAnimation>
|
||||||
//! [1]
|
|
||||||
class MyButtonWidget : public QWidget
|
class MyButtonWidget : public QWidget
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -31,7 +31,6 @@ int main(int argc, char *argv[])
|
|||||||
buttonAnimWidget.show();
|
buttonAnimWidget.show();
|
||||||
return a.exec();
|
return a.exec();
|
||||||
}
|
}
|
||||||
//! [1]
|
|
||||||
//! [0]
|
//! [0]
|
||||||
|
|
||||||
|
|
||||||
|
@ -32,17 +32,6 @@ Q_FLAG(Options)
|
|||||||
typedef QFlags<Enum> Flags;
|
typedef QFlags<Enum> Flags;
|
||||||
//! [2]
|
//! [2]
|
||||||
|
|
||||||
|
|
||||||
//! [3]
|
|
||||||
int myValue = 10;
|
|
||||||
int minValue = 2;
|
|
||||||
int maxValue = 6;
|
|
||||||
|
|
||||||
int boundedValue = qBound(minValue, myValue, maxValue);
|
|
||||||
// boundedValue == 6
|
|
||||||
//! [3]
|
|
||||||
|
|
||||||
|
|
||||||
//! [4]
|
//! [4]
|
||||||
if (!driver()->isOpen() || driver()->isOpenError()) {
|
if (!driver()->isOpen() || driver()->isOpenError()) {
|
||||||
qWarning("QSqlQuery::exec: database not open");
|
qWarning("QSqlQuery::exec: database not open");
|
||||||
@ -61,11 +50,6 @@ quint64 value = Q_UINT64_C(932838457459459);
|
|||||||
//! [6]
|
//! [6]
|
||||||
|
|
||||||
|
|
||||||
//! [7]
|
|
||||||
void myMsgHandler(QtMsgType, const char *);
|
|
||||||
//! [7]
|
|
||||||
|
|
||||||
|
|
||||||
//! [8]
|
//! [8]
|
||||||
qint64 value = Q_INT64_C(932838457459459);
|
qint64 value = Q_INT64_C(932838457459459);
|
||||||
//! [8]
|
//! [8]
|
||||||
@ -579,11 +563,6 @@ qFuzzyCompare(0.0, 1.0e-200); // This will return false
|
|||||||
qFuzzyCompare(1 + 0.0, 1 + 1.0e-200); // This will return true
|
qFuzzyCompare(1 + 0.0, 1 + 1.0e-200); // This will return true
|
||||||
//! [46]
|
//! [46]
|
||||||
|
|
||||||
//! [47]
|
|
||||||
CApaApplication *myApplicationFactory();
|
|
||||||
//! [47]
|
|
||||||
|
|
||||||
|
|
||||||
//! [49]
|
//! [49]
|
||||||
void myMessageHandler(QtMsgType, const QMessageLogContext &, const QString &);
|
void myMessageHandler(QtMsgType, const QMessageLogContext &, const QString &);
|
||||||
//! [49]
|
//! [49]
|
||||||
@ -667,19 +646,6 @@ bool readConfiguration(const QFile &file)
|
|||||||
}
|
}
|
||||||
//! [qunreachable-switch]
|
//! [qunreachable-switch]
|
||||||
|
|
||||||
//! [qunreachable-return]
|
|
||||||
switch (shape) {
|
|
||||||
case Rectangle:
|
|
||||||
return rectangle();
|
|
||||||
case Triangle:
|
|
||||||
return triangle();
|
|
||||||
case Circle:
|
|
||||||
return circle();
|
|
||||||
case NumShapes:
|
|
||||||
Q_UNREACHABLE_RETURN(nullptr);
|
|
||||||
}
|
|
||||||
//! [qunreachable-return]
|
|
||||||
|
|
||||||
//! [qt-version-check]
|
//! [qt-version-check]
|
||||||
#include <QtGlobal>
|
#include <QtGlobal>
|
||||||
|
|
||||||
|
@ -10,16 +10,6 @@ file.open(QIODevice::ReadOnly); // opens "/home/readme.txt" under Unix
|
|||||||
//! [0]
|
//! [0]
|
||||||
|
|
||||||
|
|
||||||
//! [1]
|
|
||||||
QByteArray myEncoderFunc(const QString &fileName);
|
|
||||||
//! [1]
|
|
||||||
|
|
||||||
|
|
||||||
//! [2]
|
|
||||||
QString myDecoderFunc(const QByteArray &localFileName);
|
|
||||||
//! [2]
|
|
||||||
|
|
||||||
|
|
||||||
//! [3]
|
//! [3]
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
@ -84,9 +84,3 @@ out << "Qt rocks!" << Qt::endl;
|
|||||||
//! [9]
|
//! [9]
|
||||||
stream << '\n' << Qt::flush;
|
stream << '\n' << Qt::flush;
|
||||||
//! [9]
|
//! [9]
|
||||||
|
|
||||||
|
|
||||||
//! [10]
|
|
||||||
QTextStream out(&file);
|
|
||||||
out.setEncoding(QStringConverter::Utf8);
|
|
||||||
//! [10]
|
|
||||||
|
@ -50,16 +50,6 @@ beginMoveRows(parent, 2, 2, parent, 0);
|
|||||||
beginMoveRows(parent, 2, 2, parent, 4);
|
beginMoveRows(parent, 2, 2, parent, 4);
|
||||||
//! [9]
|
//! [9]
|
||||||
|
|
||||||
//! [10]
|
|
||||||
myData.clear();
|
|
||||||
reset();
|
|
||||||
//! [10]
|
|
||||||
|
|
||||||
//! [11]
|
|
||||||
beginResetModel();
|
|
||||||
myData.clear();
|
|
||||||
endResetModel();
|
|
||||||
//! [11]
|
|
||||||
|
|
||||||
//! [12]
|
//! [12]
|
||||||
class CustomDataProxy : public QSortFilterProxyModel
|
class CustomDataProxy : public QSortFilterProxyModel
|
||||||
|
@ -101,16 +101,6 @@ void someFunc()
|
|||||||
|
|
||||||
//! [11]
|
//! [11]
|
||||||
|
|
||||||
//! [12]
|
|
||||||
QPointer<QFile> fp(new QFile);
|
|
||||||
QVariant var = QVariant::fromValue(fp);
|
|
||||||
// ...
|
|
||||||
if (var.canConvert<QObject*>()) {
|
|
||||||
QObject *sp = var.value<QObject*>();
|
|
||||||
qDebug() << sp->metaObject()->className(); // Prints 'QFile'.
|
|
||||||
}
|
|
||||||
//! [12]
|
|
||||||
|
|
||||||
//! [13]
|
//! [13]
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
@ -129,13 +129,6 @@ void MyObject::timerEvent(QTimerEvent *event)
|
|||||||
//! [8]
|
//! [8]
|
||||||
|
|
||||||
|
|
||||||
//! [9]
|
|
||||||
QList<QObject *> list = window()->queryList("QAbstractButton"));
|
|
||||||
foreach (QObject *obj, list)
|
|
||||||
static_cast<QAbstractButton *>(obj)->setEnabled(false);
|
|
||||||
//! [9]
|
|
||||||
|
|
||||||
|
|
||||||
//! [10]
|
//! [10]
|
||||||
QPushButton *button = parentWidget->findChild<QPushButton *>("button1");
|
QPushButton *button = parentWidget->findChild<QPushButton *>("button1");
|
||||||
//! [10]
|
//! [10]
|
||||||
@ -204,22 +197,6 @@ MyWindow::MyWindow()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//! [18]
|
|
||||||
int n = messages.count();
|
|
||||||
showMessage(tr("%n message(s) saved", "", n));
|
|
||||||
//! [18]
|
|
||||||
|
|
||||||
|
|
||||||
//! [19]
|
|
||||||
n == 1 ? tr("%n message saved") : tr("%n messages saved")
|
|
||||||
//! [19]
|
|
||||||
|
|
||||||
|
|
||||||
//! [20]
|
|
||||||
label->setText(tr("F\374r \310lise"));
|
|
||||||
//! [20]
|
|
||||||
|
|
||||||
|
|
||||||
//! [21]
|
//! [21]
|
||||||
if (receivers(SIGNAL(valueChanged(QByteArray))) > 0) {
|
if (receivers(SIGNAL(valueChanged(QByteArray))) > 0) {
|
||||||
QByteArray data;
|
QByteArray data;
|
||||||
@ -383,14 +360,6 @@ public:
|
|||||||
//! [39]
|
//! [39]
|
||||||
|
|
||||||
|
|
||||||
//! [40]
|
|
||||||
//: This name refers to a host name.
|
|
||||||
hostNameLabel->setText(tr("Name:"));
|
|
||||||
|
|
||||||
/*: This text refers to a C++ code example. */
|
|
||||||
QString example = tr("Example");
|
|
||||||
//! [40]
|
|
||||||
|
|
||||||
//! [41]
|
//! [41]
|
||||||
QPushButton *button = parentWidget->findChild<QPushButton *>("button1", Qt::FindDirectChildrenOnly);
|
QPushButton *button = parentWidget->findChild<QPushButton *>("button1", Qt::FindDirectChildrenOnly);
|
||||||
//! [41]
|
//! [41]
|
||||||
@ -487,18 +456,6 @@ public:
|
|||||||
};
|
};
|
||||||
//! [52]
|
//! [52]
|
||||||
|
|
||||||
//! [meta data]
|
|
||||||
//: This is a comment for the translator.
|
|
||||||
//= qtn_foo_bar
|
|
||||||
//~ loc-layout_id foo_dialog
|
|
||||||
//~ loc-blank False
|
|
||||||
//~ magic-stuff This might mean something magic.
|
|
||||||
QString text = MyMagicClass::tr("Sim sala bim.");
|
|
||||||
//! [meta data]
|
|
||||||
|
|
||||||
//! [explicit tr context]
|
|
||||||
QString text = QScrollBar::tr("Page up");
|
|
||||||
//! [explicit tr context]
|
|
||||||
|
|
||||||
//! [53]
|
//! [53]
|
||||||
{
|
{
|
||||||
|
@ -89,11 +89,6 @@ return QVariant::fromValue(s);
|
|||||||
//! [7]
|
//! [7]
|
||||||
|
|
||||||
|
|
||||||
//! [8]
|
|
||||||
QObject *object = getObjectFromSomewhere();
|
|
||||||
QVariant data = QVariant::fromValue(object);
|
|
||||||
//! [8]
|
|
||||||
|
|
||||||
//! [9]
|
//! [9]
|
||||||
|
|
||||||
QList<int> intList = {7, 11, 42};
|
QList<int> intList = {7, 11, 42};
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
// Copyright (C) 2016 The Qt Company Ltd.
|
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
|
||||||
|
|
||||||
//! [0]
|
|
||||||
class Number {
|
|
||||||
public:
|
|
||||||
Number(double n) : num (n) { }
|
|
||||||
|
|
||||||
void setNumber(double n) { num = n; }
|
|
||||||
double number() const { return num; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
double num;
|
|
||||||
};
|
|
||||||
//! [0]
|
|
||||||
|
|
||||||
|
|
||||||
//! [1]
|
|
||||||
void calcSquare(Number *num)
|
|
||||||
{
|
|
||||||
QMutexLocker locker(mutexpool.get(num));
|
|
||||||
num.setNumber(num.number() * num.number());
|
|
||||||
}
|
|
||||||
//! [1]
|
|
@ -71,14 +71,6 @@ QTime::isValid(22, 5, 62); // returns false
|
|||||||
//! [9]
|
//! [9]
|
||||||
|
|
||||||
|
|
||||||
//! [10]
|
|
||||||
QTime t;
|
|
||||||
t.start();
|
|
||||||
some_lengthy_task();
|
|
||||||
qDebug("Time elapsed: %d ms", t.elapsed());
|
|
||||||
//! [10]
|
|
||||||
|
|
||||||
|
|
||||||
//! [11]
|
//! [11]
|
||||||
QDateTime now = QDateTime::currentDateTime();
|
QDateTime now = QDateTime::currentDateTime();
|
||||||
QDateTime xmas(QDate(now.date().year(), 12, 25).startOfDay());
|
QDateTime xmas(QDate(now.date().year(), 12, 25).startOfDay());
|
||||||
|
@ -90,12 +90,4 @@ Arguments:
|
|||||||
//! [3]
|
//! [3]
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
|
||||||
//! [4]
|
|
||||||
QCommandLineParser parser;
|
|
||||||
parser.setApplicationDescription(QCoreApplication::translate("main", "The best application in the world"));
|
|
||||||
parser.addHelpOption();
|
|
||||||
//! [4]
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -163,18 +163,6 @@ for (i = hash.begin(); i != hash.end(); ++i)
|
|||||||
i.value() += 2;
|
i.value() += 2;
|
||||||
//! [18]
|
//! [18]
|
||||||
|
|
||||||
void erase()
|
|
||||||
{
|
|
||||||
QHash<QString, int> hash;
|
|
||||||
//! [20]
|
|
||||||
QHash<QString, int>::const_iterator i = hash.cbegin();
|
|
||||||
while (i != hash.cend()) {
|
|
||||||
if (i.value() > 10)
|
|
||||||
i = hash.erase(i);
|
|
||||||
else
|
|
||||||
++i;
|
|
||||||
}
|
|
||||||
//! [20]
|
|
||||||
//! [21]
|
//! [21]
|
||||||
erase_if(hash, [](const QHash<QString, int>::iterator it) { return it.value() > 10; });
|
erase_if(hash, [](const QHash<QString, int>::iterator it) { return it.value() > 10; });
|
||||||
//! [21]
|
//! [21]
|
||||||
|
@ -107,43 +107,6 @@ inline bool operator<(const Employee &e1, const Employee &e2)
|
|||||||
//! [13]
|
//! [13]
|
||||||
|
|
||||||
|
|
||||||
//! [14]
|
|
||||||
QMap<QString, int> map;
|
|
||||||
...
|
|
||||||
QMap<QString, int>::const_iterator i = map.find("HDR");
|
|
||||||
while (i != map.end() && i.key() == "HDR") {
|
|
||||||
cout << i.value() << Qt::endl;
|
|
||||||
++i;
|
|
||||||
}
|
|
||||||
//! [14]
|
|
||||||
|
|
||||||
|
|
||||||
//! [15]
|
|
||||||
QMap<int, QString> map;
|
|
||||||
map.insert(1, "one");
|
|
||||||
map.insert(5, "five");
|
|
||||||
map.insert(10, "ten");
|
|
||||||
|
|
||||||
map.lowerBound(0); // returns iterator to (1, "one")
|
|
||||||
map.lowerBound(1); // returns iterator to (1, "one")
|
|
||||||
map.lowerBound(2); // returns iterator to (5, "five")
|
|
||||||
map.lowerBound(10); // returns iterator to (10, "ten")
|
|
||||||
map.lowerBound(999); // returns end()
|
|
||||||
//! [15]
|
|
||||||
|
|
||||||
|
|
||||||
//! [16]
|
|
||||||
QMap<QString, int> map;
|
|
||||||
...
|
|
||||||
QMap<QString, int>::const_iterator i = map.lowerBound("HDR");
|
|
||||||
QMap<QString, int>::const_iterator upperBound = map.upperBound("HDR");
|
|
||||||
while (i != upperBound) {
|
|
||||||
cout << i.value() << Qt::endl;
|
|
||||||
++i;
|
|
||||||
}
|
|
||||||
//! [16]
|
|
||||||
|
|
||||||
|
|
||||||
//! [17]
|
//! [17]
|
||||||
QMap<int, QString> map;
|
QMap<int, QString> map;
|
||||||
map.insert(1, "one");
|
map.insert(1, "one");
|
||||||
@ -214,36 +177,6 @@ for (i = map.cbegin(); i != map.cend(); ++i)
|
|||||||
//! [24]
|
//! [24]
|
||||||
|
|
||||||
|
|
||||||
//! [25]
|
|
||||||
QMultiMap<QString, int> map1, map2, map3;
|
|
||||||
|
|
||||||
map1.insert("plenty", 100);
|
|
||||||
map1.insert("plenty", 2000);
|
|
||||||
// map1.size() == 2
|
|
||||||
|
|
||||||
map2.insert("plenty", 5000);
|
|
||||||
// map2.size() == 1
|
|
||||||
|
|
||||||
map3 = map1 + map2;
|
|
||||||
// map3.size() == 3
|
|
||||||
//! [25]
|
|
||||||
|
|
||||||
|
|
||||||
//! [26]
|
|
||||||
QList<int> values = map.values("plenty");
|
|
||||||
for (int i = 0; i < values.size(); ++i)
|
|
||||||
cout << values.at(i) << Qt::endl;
|
|
||||||
//! [26]
|
|
||||||
|
|
||||||
|
|
||||||
//! [27]
|
|
||||||
QMultiMap<QString, int>::iterator i = map.find("plenty");
|
|
||||||
while (i != map.end() && i.key() == "plenty") {
|
|
||||||
cout << i.value() << Qt::endl;
|
|
||||||
++i;
|
|
||||||
}
|
|
||||||
//! [27]
|
|
||||||
|
|
||||||
//! [keyiterator1]
|
//! [keyiterator1]
|
||||||
for (QMap<int, QString>::const_iterator it = map.cbegin(), end = map.cend(); it != end; ++it) {
|
for (QMap<int, QString>::const_iterator it = map.cbegin(), end = map.cend(); it != end; ++it) {
|
||||||
cout << "The key: " << it.key() << Qt::endl
|
cout << "The key: " << it.key() << Qt::endl
|
||||||
|
@ -1,111 +0,0 @@
|
|||||||
// Copyright (C) 2021 The Qt Company Ltd.
|
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
|
||||||
|
|
||||||
//! [0]
|
|
||||||
int ret = QMessageBox::warning(this, tr("My Application"),
|
|
||||||
tr("The document has been modified.\n"
|
|
||||||
"Do you want to save your changes?"),
|
|
||||||
QMessageBox::Save | QMessageBox::Discard
|
|
||||||
| QMessageBox::Cancel,
|
|
||||||
QMessageBox::Save);
|
|
||||||
//! [0]
|
|
||||||
|
|
||||||
|
|
||||||
//! [1]
|
|
||||||
QMessageBox msgBox;
|
|
||||||
msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
|
|
||||||
switch (msgBox.exec()) {
|
|
||||||
case QMessageBox::Yes:
|
|
||||||
// yes was clicked
|
|
||||||
break;
|
|
||||||
case QMessageBox::No:
|
|
||||||
// no was clicked
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
// should never be reached
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
//! [1]
|
|
||||||
|
|
||||||
|
|
||||||
//! [2]
|
|
||||||
QMessageBox msgBox;
|
|
||||||
QPushButton *connectButton = msgBox.addButton(tr("Connect"), QMessageBox::ActionRole);
|
|
||||||
QPushButton *abortButton = msgBox.addButton(QMessageBox::Abort);
|
|
||||||
|
|
||||||
msgBox.exec();
|
|
||||||
|
|
||||||
if (msgBox.clickedButton() == connectButton) {
|
|
||||||
// connect
|
|
||||||
} else if (msgBox.clickedButton() == abortButton) {
|
|
||||||
// abort
|
|
||||||
}
|
|
||||||
//! [2]
|
|
||||||
|
|
||||||
|
|
||||||
//! [3]
|
|
||||||
QMessageBox messageBox(this);
|
|
||||||
QAbstractButton *disconnectButton =
|
|
||||||
messageBox.addButton(tr("Disconnect"), QMessageBox::ActionRole);
|
|
||||||
...
|
|
||||||
messageBox.exec();
|
|
||||||
if (messageBox.clickedButton() == disconnectButton) {
|
|
||||||
...
|
|
||||||
}
|
|
||||||
//! [3]
|
|
||||||
|
|
||||||
|
|
||||||
//! [4]
|
|
||||||
#include <QApplication>
|
|
||||||
#include <QMessageBox>
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
QT_REQUIRE_VERSION(argc, argv, "6.1.2")
|
|
||||||
|
|
||||||
QApplication app(argc, argv);
|
|
||||||
...
|
|
||||||
return app.exec();
|
|
||||||
}
|
|
||||||
//! [4]
|
|
||||||
|
|
||||||
//! [5]
|
|
||||||
QMessageBox msgBox;
|
|
||||||
msgBox.setText("The document has been modified.");
|
|
||||||
msgBox.exec();
|
|
||||||
//! [5]
|
|
||||||
|
|
||||||
//! [6]
|
|
||||||
QMessageBox msgBox;
|
|
||||||
msgBox.setText("Do you want to save your changes?");
|
|
||||||
msgBox.setInformativeText("The document has been modified. It was last saved 5 days ago.");
|
|
||||||
msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
|
|
||||||
msgBox.setDefaultButton(QMessageBox::Save);
|
|
||||||
int ret = msgBox.exec();
|
|
||||||
//! [6]
|
|
||||||
|
|
||||||
//! [7]
|
|
||||||
switch (ret) {
|
|
||||||
case QMessageBox::Save:
|
|
||||||
// Save was clicked
|
|
||||||
break;
|
|
||||||
case QMessageBox::Discard:
|
|
||||||
// Don't Save was clicked
|
|
||||||
break;
|
|
||||||
case QMessageBox::Cancel:
|
|
||||||
// Cancel was clicked
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
// should never be reached
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
//! [7]
|
|
||||||
|
|
||||||
//! [9]
|
|
||||||
QMessageBox msgBox(this);
|
|
||||||
msgBox.setText(tr("The document has been modified.\n"
|
|
||||||
"Do you want to save your changes?"));
|
|
||||||
msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard
|
|
||||||
| QMessageBox::Cancel);
|
|
||||||
msgBox.setDefaultButton(QMessageBox::Save);
|
|
||||||
//! [9]
|
|
@ -1,23 +1,6 @@
|
|||||||
// Copyright (C) 2021 The Qt Company Ltd.
|
// Copyright (C) 2021 The Qt Company Ltd.
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||||
|
|
||||||
//! [Working with lists]
|
|
||||||
QStringList getTrackTitles(const QJniObject &album) {
|
|
||||||
QStringList stringList;
|
|
||||||
QJniObject list = album.callObjectMethod("getTitles",
|
|
||||||
"()Ljava/util/List;");
|
|
||||||
|
|
||||||
if (list.isValid()) {
|
|
||||||
const int size = list.callMethod<jint>("size");
|
|
||||||
for (int i = 0; i < size; ++i) {
|
|
||||||
QJniObject title = list.callObjectMethod("get", "(I)Ljava/lang/Object;", i);
|
|
||||||
stringList.append(title.toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return stringList;
|
|
||||||
}
|
|
||||||
//! [Working with lists]
|
|
||||||
|
|
||||||
//! [QJniObject scope]
|
//! [QJniObject scope]
|
||||||
void functionScope()
|
void functionScope()
|
||||||
{
|
{
|
||||||
|
@ -15,10 +15,6 @@ using namespace Qt::StringLiterals;
|
|||||||
...
|
...
|
||||||
//! [0]
|
//! [0]
|
||||||
|
|
||||||
//! [3]
|
|
||||||
DEFINES *= QT_USE_QSTRINGBUILDER
|
|
||||||
//! [3]
|
|
||||||
|
|
||||||
//! [5]
|
//! [5]
|
||||||
#include <QStringBuilder>
|
#include <QStringBuilder>
|
||||||
|
|
||||||
|
@ -1,15 +1,10 @@
|
|||||||
// Copyright (C) 2016 The Qt Company Ltd.
|
// Copyright (C) 2016 The Qt Company Ltd.
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||||
|
|
||||||
//! [0]
|
|
||||||
#include <QtWidgets>
|
#include <QtWidgets>
|
||||||
|
|
||||||
#include "mainwindow.h"
|
#include "mainwindow.h"
|
||||||
//! [0]
|
|
||||||
|
|
||||||
//! [1]
|
|
||||||
MainWindow::MainWindow()
|
MainWindow::MainWindow()
|
||||||
//! [1] //! [2]
|
|
||||||
{
|
{
|
||||||
textEdit = new QPlainTextEdit;
|
textEdit = new QPlainTextEdit;
|
||||||
setCentralWidget(textEdit);
|
setCentralWidget(textEdit);
|
||||||
@ -27,11 +22,8 @@ MainWindow::MainWindow()
|
|||||||
setCurrentFile(QString());
|
setCurrentFile(QString());
|
||||||
setUnifiedTitleAndToolBarOnMac(true);
|
setUnifiedTitleAndToolBarOnMac(true);
|
||||||
}
|
}
|
||||||
//! [2]
|
|
||||||
|
|
||||||
//! [3]
|
|
||||||
void MainWindow::closeEvent(QCloseEvent *event)
|
void MainWindow::closeEvent(QCloseEvent *event)
|
||||||
//! [3] //! [4]
|
|
||||||
{
|
{
|
||||||
if (maybeSave()) {
|
if (maybeSave()) {
|
||||||
writeSettings();
|
writeSettings();
|
||||||
@ -40,22 +32,16 @@ void MainWindow::closeEvent(QCloseEvent *event)
|
|||||||
event->ignore();
|
event->ignore();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//! [4]
|
|
||||||
|
|
||||||
//! [5]
|
|
||||||
void MainWindow::newFile()
|
void MainWindow::newFile()
|
||||||
//! [5] //! [6]
|
|
||||||
{
|
{
|
||||||
if (maybeSave()) {
|
if (maybeSave()) {
|
||||||
textEdit->clear();
|
textEdit->clear();
|
||||||
setCurrentFile(QString());
|
setCurrentFile(QString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//! [6]
|
|
||||||
|
|
||||||
//! [7]
|
|
||||||
void MainWindow::open()
|
void MainWindow::open()
|
||||||
//! [7] //! [8]
|
|
||||||
{
|
{
|
||||||
if (maybeSave()) {
|
if (maybeSave()) {
|
||||||
QString fileName = QFileDialog::getOpenFileName(this);
|
QString fileName = QFileDialog::getOpenFileName(this);
|
||||||
@ -63,11 +49,8 @@ void MainWindow::open()
|
|||||||
loadFile(fileName);
|
loadFile(fileName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//! [8]
|
|
||||||
|
|
||||||
//! [9]
|
|
||||||
bool MainWindow::save()
|
bool MainWindow::save()
|
||||||
//! [9] //! [10]
|
|
||||||
{
|
{
|
||||||
if (curFile.isEmpty()) {
|
if (curFile.isEmpty()) {
|
||||||
return saveAs();
|
return saveAs();
|
||||||
@ -75,11 +58,8 @@ bool MainWindow::save()
|
|||||||
return saveFile(curFile);
|
return saveFile(curFile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//! [10]
|
|
||||||
|
|
||||||
//! [11]
|
|
||||||
bool MainWindow::saveAs()
|
bool MainWindow::saveAs()
|
||||||
//! [11] //! [12]
|
|
||||||
{
|
{
|
||||||
QString fileName = QFileDialog::getSaveFileName(this);
|
QString fileName = QFileDialog::getSaveFileName(this);
|
||||||
if (fileName.isEmpty())
|
if (fileName.isEmpty())
|
||||||
@ -87,42 +67,31 @@ bool MainWindow::saveAs()
|
|||||||
|
|
||||||
return saveFile(fileName);
|
return saveFile(fileName);
|
||||||
}
|
}
|
||||||
//! [12]
|
|
||||||
|
|
||||||
//! [13]
|
|
||||||
void MainWindow::about()
|
void MainWindow::about()
|
||||||
//! [13] //! [14]
|
|
||||||
{
|
{
|
||||||
QMessageBox::about(this, tr("About Application"),
|
QMessageBox::about(this, tr("About Application"),
|
||||||
tr("The <b>Application</b> example demonstrates how to "
|
tr("The <b>Application</b> example demonstrates how to "
|
||||||
"write modern GUI applications using Qt, with a menu bar, "
|
"write modern GUI applications using Qt, with a menu bar, "
|
||||||
"toolbars, and a status bar."));
|
"toolbars, and a status bar."));
|
||||||
}
|
}
|
||||||
//! [14]
|
|
||||||
|
|
||||||
//! [15]
|
|
||||||
void MainWindow::documentWasModified()
|
void MainWindow::documentWasModified()
|
||||||
//! [15] //! [16]
|
|
||||||
{
|
{
|
||||||
setWindowModified(textEdit->document()->isModified());
|
setWindowModified(textEdit->document()->isModified());
|
||||||
}
|
}
|
||||||
//! [16]
|
|
||||||
|
|
||||||
//! [17]
|
|
||||||
void MainWindow::createActions()
|
void MainWindow::createActions()
|
||||||
//! [17] //! [18]
|
|
||||||
{
|
{
|
||||||
newAct = new QAction(QIcon(":/images/new.png"), tr("&New"), this);
|
newAct = new QAction(QIcon(":/images/new.png"), tr("&New"), this);
|
||||||
newAct->setShortcuts(QKeySequence::New);
|
newAct->setShortcuts(QKeySequence::New);
|
||||||
newAct->setStatusTip(tr("Create a new file"));
|
newAct->setStatusTip(tr("Create a new file"));
|
||||||
connect(newAct, &QAction::triggered, this, &MainWindow::newFile);
|
connect(newAct, &QAction::triggered, this, &MainWindow::newFile);
|
||||||
|
|
||||||
//! [19]
|
|
||||||
openAct = new QAction(QIcon(":/images/open.png"), tr("&Open..."), this);
|
openAct = new QAction(QIcon(":/images/open.png"), tr("&Open..."), this);
|
||||||
openAct->setShortcuts(QKeySequence::Open);
|
openAct->setShortcuts(QKeySequence::Open);
|
||||||
openAct->setStatusTip(tr("Open an existing file"));
|
openAct->setStatusTip(tr("Open an existing file"));
|
||||||
connect(openAct, &QAction::triggered, this, &MainWindow::open);
|
connect(openAct, &QAction::triggered, this, &MainWindow::open);
|
||||||
//! [18] //! [19]
|
|
||||||
|
|
||||||
saveAct = new QAction(QIcon(":/images/save.png"), tr("&Save"), this);
|
saveAct = new QAction(QIcon(":/images/save.png"), tr("&Save"), this);
|
||||||
saveAct->setShortcuts(QKeySequence::Save);
|
saveAct->setShortcuts(QKeySequence::Save);
|
||||||
@ -134,10 +103,8 @@ void MainWindow::createActions()
|
|||||||
saveAsAct->setStatusTip(tr("Save the document under a new name"));
|
saveAsAct->setStatusTip(tr("Save the document under a new name"));
|
||||||
connect(saveAsAct, &QAction::triggered, this, &MainWindow::saveAs);
|
connect(saveAsAct, &QAction::triggered, this, &MainWindow::saveAs);
|
||||||
|
|
||||||
//! [20]
|
|
||||||
exitAct = new QAction(tr("E&xit"), this);
|
exitAct = new QAction(tr("E&xit"), this);
|
||||||
exitAct->setShortcuts(QKeySequence::Quit);
|
exitAct->setShortcuts(QKeySequence::Quit);
|
||||||
//! [20]
|
|
||||||
exitAct->setStatusTip(tr("Exit the application"));
|
exitAct->setStatusTip(tr("Exit the application"));
|
||||||
connect(exitAct, &QAction::triggered, this, &MainWindow::close);
|
connect(exitAct, &QAction::triggered, this, &MainWindow::close);
|
||||||
|
|
||||||
@ -165,34 +132,24 @@ void MainWindow::createActions()
|
|||||||
aboutAct->setStatusTip(tr("Show the application's About box"));
|
aboutAct->setStatusTip(tr("Show the application's About box"));
|
||||||
connect(aboutAct, &QAction::triggered, this, &MainWindow::about);
|
connect(aboutAct, &QAction::triggered, this, &MainWindow::about);
|
||||||
|
|
||||||
//! [22]
|
|
||||||
aboutQtAct = new QAction(tr("About &Qt"), this);
|
aboutQtAct = new QAction(tr("About &Qt"), this);
|
||||||
aboutQtAct->setStatusTip(tr("Show the Qt library's About box"));
|
aboutQtAct->setStatusTip(tr("Show the Qt library's About box"));
|
||||||
connect(aboutQtAct, &QAction::triggered, qApp, &QApplication::aboutQt);
|
connect(aboutQtAct, &QAction::triggered, qApp, &QApplication::aboutQt);
|
||||||
//! [22]
|
|
||||||
|
|
||||||
//! [23]
|
|
||||||
cutAct->setEnabled(false);
|
cutAct->setEnabled(false);
|
||||||
//! [23] //! [24]
|
|
||||||
copyAct->setEnabled(false);
|
copyAct->setEnabled(false);
|
||||||
connect(textEdit, &QTextEdit::copyAvailable,
|
connect(textEdit, &QTextEdit::copyAvailable,
|
||||||
cutAct, &QAction::setEnabled);
|
cutAct, &QAction::setEnabled);
|
||||||
connect(textEdit, &QTextEdit::copyAvailable,
|
connect(textEdit, &QTextEdit::copyAvailable,
|
||||||
copyAct, &QAction::setEnabled);
|
copyAct, &QAction::setEnabled);
|
||||||
}
|
}
|
||||||
//! [24]
|
|
||||||
|
|
||||||
//! [25] //! [26]
|
|
||||||
void MainWindow::createMenus()
|
void MainWindow::createMenus()
|
||||||
//! [25] //! [27]
|
|
||||||
{
|
{
|
||||||
fileMenu = menuBar()->addMenu(tr("&File"));
|
fileMenu = menuBar()->addMenu(tr("&File"));
|
||||||
fileMenu->addAction(newAct);
|
fileMenu->addAction(newAct);
|
||||||
//! [28]
|
|
||||||
fileMenu->addAction(openAct);
|
fileMenu->addAction(openAct);
|
||||||
//! [28]
|
|
||||||
fileMenu->addAction(saveAct);
|
fileMenu->addAction(saveAct);
|
||||||
//! [26]
|
|
||||||
fileMenu->addAction(saveAsAct);
|
fileMenu->addAction(saveAsAct);
|
||||||
fileMenu->addSeparator();
|
fileMenu->addSeparator();
|
||||||
fileMenu->addAction(exitAct);
|
fileMenu->addAction(exitAct);
|
||||||
@ -208,16 +165,12 @@ void MainWindow::createMenus()
|
|||||||
helpMenu->addAction(aboutAct);
|
helpMenu->addAction(aboutAct);
|
||||||
helpMenu->addAction(aboutQtAct);
|
helpMenu->addAction(aboutQtAct);
|
||||||
}
|
}
|
||||||
//! [27]
|
|
||||||
|
|
||||||
//! [29] //! [30]
|
|
||||||
void MainWindow::createToolBars()
|
void MainWindow::createToolBars()
|
||||||
{
|
{
|
||||||
fileToolBar = addToolBar(tr("File"));
|
fileToolBar = addToolBar(tr("File"));
|
||||||
fileToolBar->addAction(newAct);
|
fileToolBar->addAction(newAct);
|
||||||
//! [29] //! [31]
|
|
||||||
fileToolBar->addAction(openAct);
|
fileToolBar->addAction(openAct);
|
||||||
//! [31]
|
|
||||||
fileToolBar->addAction(saveAct);
|
fileToolBar->addAction(saveAct);
|
||||||
|
|
||||||
editToolBar = addToolBar(tr("Edit"));
|
editToolBar = addToolBar(tr("Edit"));
|
||||||
@ -225,19 +178,13 @@ void MainWindow::createToolBars()
|
|||||||
editToolBar->addAction(copyAct);
|
editToolBar->addAction(copyAct);
|
||||||
editToolBar->addAction(pasteAct);
|
editToolBar->addAction(pasteAct);
|
||||||
}
|
}
|
||||||
//! [30]
|
|
||||||
|
|
||||||
//! [32]
|
|
||||||
void MainWindow::createStatusBar()
|
void MainWindow::createStatusBar()
|
||||||
//! [32] //! [33]
|
|
||||||
{
|
{
|
||||||
statusBar()->showMessage(tr("Ready"));
|
statusBar()->showMessage(tr("Ready"));
|
||||||
}
|
}
|
||||||
//! [33]
|
|
||||||
|
|
||||||
//! [34] //! [35]
|
|
||||||
void MainWindow::readSettings()
|
void MainWindow::readSettings()
|
||||||
//! [34] //! [36]
|
|
||||||
{
|
{
|
||||||
QSettings settings("QtProject", "Application Example");
|
QSettings settings("QtProject", "Application Example");
|
||||||
QPoint pos = settings.value("pos", QPoint(200, 200)).toPoint();
|
QPoint pos = settings.value("pos", QPoint(200, 200)).toPoint();
|
||||||
@ -245,21 +192,15 @@ void MainWindow::readSettings()
|
|||||||
resize(size);
|
resize(size);
|
||||||
move(pos);
|
move(pos);
|
||||||
}
|
}
|
||||||
//! [35] //! [36]
|
|
||||||
|
|
||||||
//! [37] //! [38]
|
|
||||||
void MainWindow::writeSettings()
|
void MainWindow::writeSettings()
|
||||||
//! [37] //! [39]
|
|
||||||
{
|
{
|
||||||
QSettings settings("QtProject", "Application Example");
|
QSettings settings("QtProject", "Application Example");
|
||||||
settings.setValue("pos", pos());
|
settings.setValue("pos", pos());
|
||||||
settings.setValue("size", size());
|
settings.setValue("size", size());
|
||||||
}
|
}
|
||||||
//! [38] //! [39]
|
|
||||||
|
|
||||||
//! [40]
|
|
||||||
bool MainWindow::maybeSave()
|
bool MainWindow::maybeSave()
|
||||||
//! [40] //! [41]
|
|
||||||
{
|
{
|
||||||
if (textEdit->document()->isModified()) {
|
if (textEdit->document()->isModified()) {
|
||||||
QMessageBox::StandardButton ret;
|
QMessageBox::StandardButton ret;
|
||||||
@ -274,11 +215,8 @@ bool MainWindow::maybeSave()
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
//! [41]
|
|
||||||
|
|
||||||
//! [42]
|
|
||||||
void MainWindow::loadFile(const QString &fileName)
|
void MainWindow::loadFile(const QString &fileName)
|
||||||
//! [42] //! [43]
|
|
||||||
{
|
{
|
||||||
QFile file(fileName);
|
QFile file(fileName);
|
||||||
if (!file.open(QFile::ReadOnly | QFile::Text)) {
|
if (!file.open(QFile::ReadOnly | QFile::Text)) {
|
||||||
@ -301,11 +239,8 @@ void MainWindow::loadFile(const QString &fileName)
|
|||||||
setCurrentFile(fileName);
|
setCurrentFile(fileName);
|
||||||
statusBar()->showMessage(tr("File loaded"), 2000);
|
statusBar()->showMessage(tr("File loaded"), 2000);
|
||||||
}
|
}
|
||||||
//! [43]
|
|
||||||
|
|
||||||
//! [44]
|
|
||||||
bool MainWindow::saveFile(const QString &fileName)
|
bool MainWindow::saveFile(const QString &fileName)
|
||||||
//! [44] //! [45]
|
|
||||||
{
|
{
|
||||||
QFile file(fileName);
|
QFile file(fileName);
|
||||||
if (!file.open(QFile::WriteOnly | QFile::Text)) {
|
if (!file.open(QFile::WriteOnly | QFile::Text)) {
|
||||||
@ -329,11 +264,8 @@ bool MainWindow::saveFile(const QString &fileName)
|
|||||||
statusBar()->showMessage(tr("File saved"), 2000);
|
statusBar()->showMessage(tr("File saved"), 2000);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
//! [45]
|
|
||||||
|
|
||||||
//! [46]
|
|
||||||
void MainWindow::setCurrentFile(const QString &fileName)
|
void MainWindow::setCurrentFile(const QString &fileName)
|
||||||
//! [46] //! [47]
|
|
||||||
{
|
{
|
||||||
curFile = fileName;
|
curFile = fileName;
|
||||||
textEdit->document()->setModified(false);
|
textEdit->document()->setModified(false);
|
||||||
@ -344,12 +276,8 @@ void MainWindow::setCurrentFile(const QString &fileName)
|
|||||||
shownName = "untitled.txt";
|
shownName = "untitled.txt";
|
||||||
setWindowFilePath(shownName);
|
setWindowFilePath(shownName);
|
||||||
}
|
}
|
||||||
//! [47]
|
|
||||||
|
|
||||||
//! [48]
|
|
||||||
QString MainWindow::strippedName(const QString &fullFileName)
|
QString MainWindow::strippedName(const QString &fullFileName)
|
||||||
//! [48] //! [49]
|
|
||||||
{
|
{
|
||||||
return QFileInfo(fullFileName).fileName();
|
return QFileInfo(fullFileName).fileName();
|
||||||
}
|
}
|
||||||
//! [49]
|
|
||||||
|
@ -7,9 +7,7 @@
|
|||||||
|
|
||||||
#define Counter ReentrantCounter
|
#define Counter ReentrantCounter
|
||||||
|
|
||||||
//! [3]
|
|
||||||
class Counter
|
class Counter
|
||||||
//! [3] //! [4]
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Counter() { n = 0; }
|
Counter() { n = 0; }
|
||||||
@ -21,14 +19,11 @@ public:
|
|||||||
private:
|
private:
|
||||||
int n;
|
int n;
|
||||||
};
|
};
|
||||||
//! [4]
|
|
||||||
|
|
||||||
#undef Counter
|
#undef Counter
|
||||||
#define Counter ThreadSafeCounter
|
#define Counter ThreadSafeCounter
|
||||||
|
|
||||||
//! [5]
|
|
||||||
class Counter
|
class Counter
|
||||||
//! [5] //! [6]
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Counter() { n = 0; }
|
Counter() { n = 0; }
|
||||||
@ -41,7 +36,6 @@ private:
|
|||||||
mutable QMutex mutex;
|
mutable QMutex mutex;
|
||||||
int n;
|
int n;
|
||||||
};
|
};
|
||||||
//! [6]
|
|
||||||
|
|
||||||
typedef int SomeClass;
|
typedef int SomeClass;
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
#include "analogclock.h"
|
#include "analogclock.h"
|
||||||
|
|
||||||
//! [0] //! [1]
|
//! [0]
|
||||||
AnalogClock::AnalogClock(QWidget *parent)
|
AnalogClock::AnalogClock(QWidget *parent)
|
||||||
//! [0] //! [2]
|
//! [0] //! [2]
|
||||||
: QWidget(parent)
|
: QWidget(parent)
|
||||||
@ -23,11 +23,9 @@ AnalogClock::AnalogClock(QWidget *parent)
|
|||||||
resize(200, 200);
|
resize(200, 200);
|
||||||
//! [7]
|
//! [7]
|
||||||
}
|
}
|
||||||
//! [1] //! [7]
|
//! [7]
|
||||||
|
|
||||||
//! [8] //! [9]
|
|
||||||
void AnalogClock::paintEvent(QPaintEvent *)
|
void AnalogClock::paintEvent(QPaintEvent *)
|
||||||
//! [8] //! [10]
|
|
||||||
{
|
{
|
||||||
static const QPoint hourHand[3] = {
|
static const QPoint hourHand[3] = {
|
||||||
QPoint(7, 8),
|
QPoint(7, 8),
|
||||||
@ -45,64 +43,40 @@ void AnalogClock::paintEvent(QPaintEvent *)
|
|||||||
|
|
||||||
int side = qMin(width(), height());
|
int side = qMin(width(), height());
|
||||||
QTime time = QTime::currentTime();
|
QTime time = QTime::currentTime();
|
||||||
//! [10]
|
|
||||||
|
|
||||||
//! [11]
|
|
||||||
QPainter painter(this);
|
QPainter painter(this);
|
||||||
//! [11] //! [12]
|
|
||||||
painter.setRenderHint(QPainter::Antialiasing);
|
painter.setRenderHint(QPainter::Antialiasing);
|
||||||
//! [12] //! [13]
|
|
||||||
painter.translate(width() / 2, height() / 2);
|
painter.translate(width() / 2, height() / 2);
|
||||||
//! [13] //! [14]
|
|
||||||
painter.scale(side / 200.0, side / 200.0);
|
painter.scale(side / 200.0, side / 200.0);
|
||||||
//! [9] //! [14]
|
|
||||||
|
|
||||||
//! [15]
|
|
||||||
painter.setPen(Qt::NoPen);
|
painter.setPen(Qt::NoPen);
|
||||||
//! [15] //! [16]
|
|
||||||
painter.setBrush(hourColor);
|
painter.setBrush(hourColor);
|
||||||
//! [16]
|
|
||||||
|
|
||||||
//! [17] //! [18]
|
|
||||||
painter.save();
|
painter.save();
|
||||||
//! [17] //! [19]
|
|
||||||
painter.rotate(30.0 * ((time.hour() + time.minute() / 60.0)));
|
painter.rotate(30.0 * ((time.hour() + time.minute() / 60.0)));
|
||||||
painter.drawConvexPolygon(hourHand, 3);
|
painter.drawConvexPolygon(hourHand, 3);
|
||||||
painter.restore();
|
painter.restore();
|
||||||
//! [18] //! [19]
|
|
||||||
|
|
||||||
//! [20]
|
|
||||||
painter.setPen(hourColor);
|
painter.setPen(hourColor);
|
||||||
//! [20] //! [21]
|
|
||||||
|
|
||||||
for (int i = 0; i < 12; ++i) {
|
for (int i = 0; i < 12; ++i) {
|
||||||
painter.drawLine(88, 0, 96, 0);
|
painter.drawLine(88, 0, 96, 0);
|
||||||
painter.rotate(30.0);
|
painter.rotate(30.0);
|
||||||
}
|
}
|
||||||
//! [21]
|
|
||||||
|
|
||||||
//! [22]
|
|
||||||
painter.setPen(Qt::NoPen);
|
painter.setPen(Qt::NoPen);
|
||||||
//! [22] //! [23]
|
|
||||||
painter.setBrush(minuteColor);
|
painter.setBrush(minuteColor);
|
||||||
|
|
||||||
//! [24]
|
|
||||||
painter.save();
|
painter.save();
|
||||||
painter.rotate(6.0 * (time.minute() + time.second() / 60.0));
|
painter.rotate(6.0 * (time.minute() + time.second() / 60.0));
|
||||||
painter.drawConvexPolygon(minuteHand, 3);
|
painter.drawConvexPolygon(minuteHand, 3);
|
||||||
painter.restore();
|
painter.restore();
|
||||||
//! [23] //! [24]
|
|
||||||
|
|
||||||
//! [25]
|
|
||||||
painter.setPen(minuteColor);
|
painter.setPen(minuteColor);
|
||||||
//! [25] //! [26]
|
|
||||||
|
|
||||||
//! [27]
|
|
||||||
for (int j = 0; j < 60; ++j) {
|
for (int j = 0; j < 60; ++j) {
|
||||||
if ((j % 5) != 0)
|
if ((j % 5) != 0)
|
||||||
painter.drawLine(92, 0, 96, 0);
|
painter.drawLine(92, 0, 96, 0);
|
||||||
painter.rotate(6.0);
|
painter.rotate(6.0);
|
||||||
}
|
}
|
||||||
//! [27]
|
|
||||||
}
|
}
|
||||||
//! [26]
|
|
||||||
|
@ -19,70 +19,6 @@ struct MyWidget
|
|||||||
int manhattanLength() { return 0; }
|
int manhattanLength() { return 0; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
//! [0]
|
|
||||||
QCoreApplication *createApplication(int &argc, char *argv[])
|
|
||||||
{
|
|
||||||
for (int i = 1; i < argc; ++i)
|
|
||||||
if (!qstrcmp(argv[i], "-no-gui"))
|
|
||||||
return new QCoreApplication(argc, argv);
|
|
||||||
return new QApplication(argc, argv);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
QScopedPointer<QCoreApplication> app(createApplication(argc, argv));
|
|
||||||
|
|
||||||
if (qobject_cast<QApplication *>(app.data())) {
|
|
||||||
// start GUI version...
|
|
||||||
} else {
|
|
||||||
// start non-GUI version...
|
|
||||||
}
|
|
||||||
|
|
||||||
return app->exec();
|
|
||||||
}
|
|
||||||
//! [0]
|
|
||||||
|
|
||||||
|
|
||||||
void wrapper0() {
|
|
||||||
|
|
||||||
//! [1]
|
|
||||||
QApplication::setStyle(QStyleFactory::create("fusion"));
|
|
||||||
//! [1]
|
|
||||||
|
|
||||||
} // wrapper0
|
|
||||||
|
|
||||||
|
|
||||||
//! [3]
|
|
||||||
QSize MyWidget::sizeHint() const
|
|
||||||
{
|
|
||||||
return QSize(80, 25);
|
|
||||||
}
|
|
||||||
//! [3]
|
|
||||||
|
|
||||||
|
|
||||||
//! [4]
|
|
||||||
void showAllHiddenTopLevelWidgets()
|
|
||||||
{
|
|
||||||
const auto topLevelWidgets = QApplication::topLevelWidgets();
|
|
||||||
for (QWidget *widget : topLevelWidgets) {
|
|
||||||
if (widget->isHidden())
|
|
||||||
widget->show();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//! [4]
|
|
||||||
|
|
||||||
|
|
||||||
//! [5]
|
|
||||||
void updateAllWidgets()
|
|
||||||
{
|
|
||||||
const auto topLevelWidgets = QApplication::topLevelWidgets();
|
|
||||||
for (QWidget *widget : topLevelWidgets)
|
|
||||||
widget->update();
|
|
||||||
}
|
|
||||||
//! [5]
|
|
||||||
|
|
||||||
|
|
||||||
void startTheDrag() {};
|
void startTheDrag() {};
|
||||||
void wrapper1() {
|
void wrapper1() {
|
||||||
MyWidget startPos;
|
MyWidget startPos;
|
||||||
@ -96,25 +32,6 @@ if ((startPos - currentPos).manhattanLength() >=
|
|||||||
startTheDrag();
|
startTheDrag();
|
||||||
//! [6]
|
//! [6]
|
||||||
|
|
||||||
|
|
||||||
//! [7]
|
|
||||||
QWidget *widget = qApp->widgetAt(x, y);
|
|
||||||
if (widget)
|
|
||||||
widget = widget->window();
|
|
||||||
//! [7]
|
|
||||||
|
|
||||||
} // wrapper1
|
} // wrapper1
|
||||||
|
|
||||||
|
|
||||||
void wrapper2() {
|
|
||||||
QPoint point;
|
|
||||||
|
|
||||||
//! [8]
|
|
||||||
QWidget *widget = qApp->widgetAt(point);
|
|
||||||
if (widget)
|
|
||||||
widget = widget->window();
|
|
||||||
//! [8]
|
|
||||||
|
|
||||||
|
|
||||||
} // wrapper2
|
|
||||||
} // src_gui_kernel_qapplication
|
} // src_gui_kernel_qapplication
|
||||||
|
@ -97,15 +97,6 @@ struct QPainter {
|
|||||||
void setWorldTransform(QTransform matrix, bool);
|
void setWorldTransform(QTransform matrix, bool);
|
||||||
};
|
};
|
||||||
|
|
||||||
//! [4]
|
|
||||||
void QPainter::rotate(qreal angle)
|
|
||||||
{
|
|
||||||
QTransform matrix;
|
|
||||||
matrix.rotate(angle);
|
|
||||||
setWorldTransform(matrix, true);
|
|
||||||
}
|
|
||||||
//! [4]
|
|
||||||
|
|
||||||
} // QPainterWrapper
|
} // QPainterWrapper
|
||||||
|
|
||||||
void MyWidget::wrapper1() {
|
void MyWidget::wrapper1() {
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
// Copyright (C) 2016 The Qt Company Ltd.
|
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
|
||||||
namespace src_gui_text_qtextdocument {
|
|
||||||
|
|
||||||
/* wrap non-code snippet
|
|
||||||
|
|
||||||
//! [0]
|
|
||||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body>...
|
|
||||||
//! [0]
|
|
||||||
|
|
||||||
*/ // wrap non-code snippet
|
|
||||||
} // src_gui_text_qtextdocument
|
|
@ -65,15 +65,6 @@ QDesktopServices::openUrl(QUrl("file:///C:/Program Files", QUrl::TolerantMode));
|
|||||||
|
|
||||||
*/ // comment wrapper 2
|
*/ // comment wrapper 2
|
||||||
|
|
||||||
|
|
||||||
void wrapper3() {
|
|
||||||
//! [6]
|
|
||||||
QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) +
|
|
||||||
"/data/organization/application";
|
|
||||||
//! [6]
|
|
||||||
} // wrapper3
|
|
||||||
|
|
||||||
|
|
||||||
/* comment wrapper 3
|
/* comment wrapper 3
|
||||||
//! [7]
|
//! [7]
|
||||||
<key>com.apple.developer.associated-domains</key>
|
<key>com.apple.developer.associated-domains</key>
|
||||||
|
@ -25,13 +25,6 @@ buffer.open(QIODevice::WriteOnly);
|
|||||||
pixmap.save(&buffer, "PNG"); // writes pixmap into bytes in PNG format
|
pixmap.save(&buffer, "PNG"); // writes pixmap into bytes in PNG format
|
||||||
//! [1]
|
//! [1]
|
||||||
|
|
||||||
|
|
||||||
//! [2]
|
|
||||||
QPixmap alpha("image-with-alpha.png");
|
|
||||||
QPixmap alphacopy = alpha;
|
|
||||||
alphacopy.setMask(alphacopy.mask());
|
|
||||||
//! [2]
|
|
||||||
|
|
||||||
} // wrapper1
|
} // wrapper1
|
||||||
|
|
||||||
} // image
|
} // image
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
// Copyright (C) 2016 The Qt Company Ltd.
|
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
|
||||||
|
|
||||||
//! [1]
|
|
||||||
#include <QtNetwork>
|
|
||||||
//! [1]
|
|
@ -49,12 +49,6 @@ socket->write("1 CAPABILITY\r\n");
|
|||||||
//! [3]
|
//! [3]
|
||||||
|
|
||||||
|
|
||||||
//! [4]
|
|
||||||
QSslSocket socket;
|
|
||||||
socket.setCiphers("DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:AES256-SHA");
|
|
||||||
//! [4]
|
|
||||||
|
|
||||||
|
|
||||||
//! [5]
|
//! [5]
|
||||||
socket->connectToHostEncrypted("imap", 993);
|
socket->connectToHostEncrypted("imap", 993);
|
||||||
if (socket->waitForEncrypted(1000))
|
if (socket->waitForEncrypted(1000))
|
||||||
|
@ -47,10 +47,8 @@ if (q.next())
|
|||||||
//! [26]
|
//! [26]
|
||||||
|
|
||||||
qDebug( \
|
qDebug( \
|
||||||
//! [31]
|
|
||||||
"QSqlDatabase: QMYSQL driver not loaded \
|
"QSqlDatabase: QMYSQL driver not loaded \
|
||||||
QSqlDatabase: available drivers: QMYSQL" \
|
QSqlDatabase: available drivers: QMYSQL" \
|
||||||
//! [31]
|
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Commented because the following line is not compilable
|
/* Commented because the following line is not compilable
|
||||||
|
@ -17,17 +17,13 @@
|
|||||||
//! [20]
|
//! [20]
|
||||||
}
|
}
|
||||||
|
|
||||||
//! [21]
|
|
||||||
QSqlQueryModel model;
|
QSqlQueryModel model;
|
||||||
model.setQuery("SELECT name, salary FROM employee");
|
model.setQuery("SELECT name, salary FROM employee");
|
||||||
int salary = model.record(4).value("salary").toInt();
|
int salary = model.record(4).value("salary").toInt();
|
||||||
//! [21]
|
|
||||||
Q_UNUSED(salary);
|
Q_UNUSED(salary);
|
||||||
|
|
||||||
{
|
{
|
||||||
//! [22]
|
|
||||||
int salary = model.data(model.index(4, 1)).toInt();
|
int salary = model.data(model.index(4, 1)).toInt();
|
||||||
//! [22]
|
|
||||||
Q_UNUSED(salary);
|
Q_UNUSED(salary);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -47,7 +43,6 @@ public:
|
|||||||
int m_specialColumnNo;
|
int m_specialColumnNo;
|
||||||
};
|
};
|
||||||
|
|
||||||
//! [23]
|
|
||||||
QVariant MyModel::data(const QModelIndex &item, int role) const
|
QVariant MyModel::data(const QModelIndex &item, int role) const
|
||||||
{
|
{
|
||||||
if (item.column() == m_specialColumnNo) {
|
if (item.column() == m_specialColumnNo) {
|
||||||
@ -55,7 +50,6 @@ QVariant MyModel::data(const QModelIndex &item, int role) const
|
|||||||
}
|
}
|
||||||
return QSqlQueryModel::data(item, role);
|
return QSqlQueryModel::data(item, role);
|
||||||
}
|
}
|
||||||
//! [23]
|
|
||||||
|
|
||||||
void QSqlTableModel_snippets()
|
void QSqlTableModel_snippets()
|
||||||
{
|
{
|
||||||
@ -72,258 +66,8 @@ void QSqlTableModel_snippets()
|
|||||||
view->hideColumn(0); // don't show the ID
|
view->hideColumn(0); // don't show the ID
|
||||||
view->show();
|
view->show();
|
||||||
//! [24]
|
//! [24]
|
||||||
|
|
||||||
{
|
|
||||||
//! [25]
|
|
||||||
QSqlTableModel model;
|
|
||||||
model.setTable("employee");
|
|
||||||
model.select();
|
|
||||||
int salary = model.record(4).value("salary").toInt();
|
|
||||||
//! [25]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void sql_intro_snippets()
|
|
||||||
{
|
|
||||||
{
|
|
||||||
//! [26]
|
|
||||||
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
|
|
||||||
db.setHostName("bigblue");
|
|
||||||
db.setDatabaseName("flightdb");
|
|
||||||
db.setUserName("acarlson");
|
|
||||||
db.setPassword("1uTbSbAs");
|
|
||||||
bool ok = db.open();
|
|
||||||
//! [26]
|
|
||||||
Q_UNUSED(ok);
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
//! [27]
|
|
||||||
QSqlDatabase firstDB = QSqlDatabase::addDatabase("QMYSQL", "first");
|
|
||||||
QSqlDatabase secondDB = QSqlDatabase::addDatabase("QMYSQL", "second");
|
|
||||||
//! [27]
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
//! [28]
|
|
||||||
QSqlDatabase defaultDB = QSqlDatabase::database();
|
|
||||||
//! [28] //! [29]
|
|
||||||
QSqlDatabase firstDB = QSqlDatabase::database("first");
|
|
||||||
//! [29] //! [30]
|
|
||||||
QSqlDatabase secondDB = QSqlDatabase::database("second");
|
|
||||||
//! [30]
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
// SELECT1
|
|
||||||
//! [31]
|
|
||||||
QSqlQuery query;
|
|
||||||
query.exec("SELECT name, salary FROM employee WHERE salary > 50000");
|
|
||||||
//! [31]
|
|
||||||
|
|
||||||
//! [32]
|
|
||||||
while (query.next()) {
|
|
||||||
QString name = query.value(0).toString();
|
|
||||||
int salary = query.value(1).toInt();
|
|
||||||
qDebug() << name << salary;
|
|
||||||
}
|
|
||||||
//! [32]
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
// FEATURE
|
|
||||||
//! [33]
|
|
||||||
QSqlQuery query;
|
|
||||||
int numRows;
|
|
||||||
query.exec("SELECT name, salary FROM employee WHERE salary > 50000");
|
|
||||||
|
|
||||||
QSqlDatabase defaultDB = QSqlDatabase::database();
|
|
||||||
if (defaultDB.driver()->hasFeature(QSqlDriver::QuerySize)) {
|
|
||||||
numRows = query.size();
|
|
||||||
} else {
|
|
||||||
// this can be very slow
|
|
||||||
query.last();
|
|
||||||
numRows = query.at() + 1;
|
|
||||||
}
|
|
||||||
//! [33]
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
// INSERT1
|
|
||||||
//! [34]
|
|
||||||
QSqlQuery query;
|
|
||||||
query.exec("INSERT INTO employee (id, name, salary) "
|
|
||||||
"VALUES (1001, 'Thad Beaumont', 65000)");
|
|
||||||
//! [34]
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
// NAMED BINDING
|
|
||||||
//! [35]
|
|
||||||
QSqlQuery query;
|
|
||||||
query.prepare("INSERT INTO employee (id, name, salary) "
|
|
||||||
"VALUES (:id, :name, :salary)");
|
|
||||||
query.bindValue(":id", 1001);
|
|
||||||
query.bindValue(":name", "Thad Beaumont");
|
|
||||||
query.bindValue(":salary", 65000);
|
|
||||||
query.exec();
|
|
||||||
//! [35]
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
// POSITIONAL BINDING
|
|
||||||
//! [36]
|
|
||||||
QSqlQuery query;
|
|
||||||
query.prepare("INSERT INTO employee (id, name, salary) "
|
|
||||||
"VALUES (?, ?, ?)");
|
|
||||||
query.addBindValue(1001);
|
|
||||||
query.addBindValue("Thad Beaumont");
|
|
||||||
query.addBindValue(65000);
|
|
||||||
query.exec();
|
|
||||||
//! [36]
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
// UPDATE1
|
|
||||||
//! [37]
|
|
||||||
QSqlQuery query;
|
|
||||||
query.exec("UPDATE employee SET salary = 70000 WHERE id = 1003");
|
|
||||||
//! [37]
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
// DELETE1
|
|
||||||
//! [38]
|
|
||||||
QSqlQuery query;
|
|
||||||
query.exec("DELETE FROM employee WHERE id = 1007");
|
|
||||||
//! [38]
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
// TRANSACTION
|
|
||||||
//! [39]
|
|
||||||
QSqlDatabase::database().transaction();
|
|
||||||
QSqlQuery query;
|
|
||||||
query.exec("SELECT id FROM employee WHERE name = 'Torild Halvorsen'");
|
|
||||||
if (query.next()) {
|
|
||||||
int employeeId = query.value(0).toInt();
|
|
||||||
query.exec("INSERT INTO project (id, name, ownerid) "
|
|
||||||
"VALUES (201, 'Manhattan Project', "
|
|
||||||
+ QString::number(employeeId) + ')');
|
|
||||||
}
|
|
||||||
QSqlDatabase::database().commit();
|
|
||||||
//! [39]
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
// SQLQUERYMODEL1
|
|
||||||
//! [40]
|
|
||||||
QSqlQueryModel model;
|
|
||||||
model.setQuery("SELECT * FROM employee");
|
|
||||||
|
|
||||||
for (int i = 0; i < model.rowCount(); ++i) {
|
|
||||||
int id = model.record(i).value("id").toInt();
|
|
||||||
QString name = model.record(i).value("name").toString();
|
|
||||||
qDebug() << id << name;
|
|
||||||
}
|
|
||||||
//! [40]
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
// SQLTABLEMODEL1
|
|
||||||
//! [41]
|
|
||||||
QSqlTableModel model;
|
|
||||||
model.setTable("employee");
|
|
||||||
model.setFilter("salary > 50000");
|
|
||||||
model.setSort(2, Qt::DescendingOrder);
|
|
||||||
model.select();
|
|
||||||
|
|
||||||
for (int i = 0; i < model.rowCount(); ++i) {
|
|
||||||
QString name = model.record(i).value("name").toString();
|
|
||||||
int salary = model.record(i).value("salary").toInt();
|
|
||||||
qDebug() << name << salary;
|
|
||||||
}
|
|
||||||
//! [41]
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
// SQLTABLEMODEL2
|
|
||||||
QSqlTableModel model;
|
|
||||||
model.setTable("employee");
|
|
||||||
|
|
||||||
//! [42]
|
|
||||||
for (int i = 0; i < model.rowCount(); ++i) {
|
|
||||||
QSqlRecord record = model.record(i);
|
|
||||||
double salary = record.value("salary").toInt();
|
|
||||||
salary *= 1.1;
|
|
||||||
record.setValue("salary", salary);
|
|
||||||
model.setRecord(i, record);
|
|
||||||
}
|
|
||||||
model.submitAll();
|
|
||||||
//! [42]
|
|
||||||
|
|
||||||
// SQLTABLEMODEL3
|
|
||||||
int row = 1;
|
|
||||||
int column = 2;
|
|
||||||
//! [43]
|
|
||||||
model.setData(model.index(row, column), 75000);
|
|
||||||
model.submitAll();
|
|
||||||
//! [43]
|
|
||||||
|
|
||||||
// SQLTABLEMODEL4
|
|
||||||
//! [44]
|
|
||||||
model.insertRows(row, 1);
|
|
||||||
model.setData(model.index(row, 0), 1013);
|
|
||||||
model.setData(model.index(row, 1), "Peter Gordon");
|
|
||||||
model.setData(model.index(row, 2), 68500);
|
|
||||||
model.submitAll();
|
|
||||||
//! [44]
|
|
||||||
|
|
||||||
//! [45]
|
|
||||||
model.removeRows(row, 5);
|
|
||||||
//! [45] //! [46]
|
|
||||||
model.submitAll();
|
|
||||||
//! [46]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//! [47]
|
|
||||||
class XyzResult : public QSqlResult
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
XyzResult(const QSqlDriver *driver)
|
|
||||||
: QSqlResult(driver) {}
|
|
||||||
~XyzResult() {}
|
|
||||||
|
|
||||||
protected:
|
|
||||||
QVariant data(int /* index */) override { return QVariant(); }
|
|
||||||
bool isNull(int /* index */) override { return false; }
|
|
||||||
bool reset(const QString & /* query */) override { return false; }
|
|
||||||
bool fetch(int /* index */) override { return false; }
|
|
||||||
bool fetchFirst() override { return false; }
|
|
||||||
bool fetchLast() override { return false; }
|
|
||||||
int size() override { return 0; }
|
|
||||||
int numRowsAffected() override { return 0; }
|
|
||||||
QSqlRecord record() const override { return QSqlRecord(); }
|
|
||||||
};
|
|
||||||
//! [47]
|
|
||||||
|
|
||||||
//! [48]
|
|
||||||
class XyzDriver : public QSqlDriver
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
XyzDriver() {}
|
|
||||||
~XyzDriver() {}
|
|
||||||
|
|
||||||
bool hasFeature(DriverFeature /* feature */) const override { return false; }
|
|
||||||
bool open(const QString & /* db */, const QString & /* user */,
|
|
||||||
const QString & /* password */, const QString & /* host */,
|
|
||||||
int /* port */, const QString & /* options */) override
|
|
||||||
{ return false; }
|
|
||||||
void close() {}
|
|
||||||
QSqlResult *createResult() const override { return new XyzResult(this); }
|
|
||||||
};
|
|
||||||
//! [48]
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
add_library(testlib_code_snippets OBJECT
|
add_library(testlib_code_snippets OBJECT
|
||||||
doc_src_qtqskip.cpp
|
doc_src_qtqskip.cpp
|
||||||
doc_src_qttest.cpp
|
|
||||||
src_corelib_kernel_qtestsupport_core.cpp
|
src_corelib_kernel_qtestsupport_core.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -43,9 +43,6 @@ SomeStruct result = qvariant_cast<SomeStruct>(spy.at(0).at(0));
|
|||||||
QSignalSpy spy(myPushButton, SIGNAL(clicked(bool)));
|
QSignalSpy spy(myPushButton, SIGNAL(clicked(bool)));
|
||||||
//! [4]
|
//! [4]
|
||||||
|
|
||||||
//! [5]
|
|
||||||
QVERIFY(spy.wait(1000));
|
|
||||||
//! [5]
|
|
||||||
|
|
||||||
//! [6]
|
//! [6]
|
||||||
QSignalSpy spy(myPushButton, &QPushButton::clicked);
|
QSignalSpy spy(myPushButton, &QPushButton::clicked);
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
// Copyright (C) 2016 The Qt Company Ltd.
|
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
|
||||||
|
|
||||||
//! [0]
|
|
||||||
#include <QTest>
|
|
||||||
//! [0]
|
|
@ -26,48 +26,3 @@ setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea);
|
|||||||
QWidget *centralWidget = new QWidget(this);
|
QWidget *centralWidget = new QWidget(this);
|
||||||
setCentralWidget(centralWidget);
|
setCentralWidget(centralWidget);
|
||||||
//! [3]
|
//! [3]
|
||||||
|
|
||||||
|
|
||||||
//! [4]
|
|
||||||
QPopupMenu *fileMenu = new QPopupMenu(this);
|
|
||||||
openAction->addTo(fileMenu);
|
|
||||||
saveAction->addTo(fileMenu);
|
|
||||||
...
|
|
||||||
menuBar()->insertItem(tr("&File"), fileMenu);
|
|
||||||
//! [4]
|
|
||||||
|
|
||||||
|
|
||||||
//! [5]
|
|
||||||
QMenu *fileMenu = menuBar()->addMenu(tr("&File"));
|
|
||||||
fileMenu->addAction(openAction);
|
|
||||||
fileMenu->addAction(saveAction);
|
|
||||||
...
|
|
||||||
//! [5]
|
|
||||||
|
|
||||||
|
|
||||||
//! [6]
|
|
||||||
QToolBar *fileTools = new QToolBar(this, "file toolbar");
|
|
||||||
openAction->addTo(fileTools);
|
|
||||||
saveAction->addTo(fileTools);
|
|
||||||
...
|
|
||||||
//! [6]
|
|
||||||
|
|
||||||
|
|
||||||
//! [7]
|
|
||||||
QToolBar *fileTools = addToolBar(tr("File Tool Bar"));
|
|
||||||
fileTools->addAction(openAction);
|
|
||||||
fileTools->addAction(saveAction);
|
|
||||||
...
|
|
||||||
//! [7]
|
|
||||||
|
|
||||||
|
|
||||||
//! [8]
|
|
||||||
QDockWidget *dockWidget = new QDockWidget(this);
|
|
||||||
mainWin->moveDockWidget(dockWidget, Qt::DockLeft);
|
|
||||||
//! [8]
|
|
||||||
|
|
||||||
|
|
||||||
//! [9]
|
|
||||||
QDockWidget *dockWidget = new QDockWidget(mainWindow);
|
|
||||||
mainWindow->addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
|
|
||||||
//! [9]
|
|
||||||
|
@ -24,22 +24,3 @@ void MyWidget::paintEvent(QPaintEvent *event)
|
|||||||
this);
|
this);
|
||||||
}
|
}
|
||||||
//! [1]
|
//! [1]
|
||||||
|
|
||||||
|
|
||||||
//! [2]
|
|
||||||
void drawControl(ControlElement element,
|
|
||||||
QPainter *painter,
|
|
||||||
const QWidget *widget,
|
|
||||||
const QRect &rect,
|
|
||||||
const QColorGroup &colorGroup,
|
|
||||||
SFlags how = Style_Default,
|
|
||||||
const QStyleOption &option = QStyleOption::Default) const;
|
|
||||||
//! [2]
|
|
||||||
|
|
||||||
|
|
||||||
//! [3]
|
|
||||||
void drawControl(ControlElement element,
|
|
||||||
const QStyleOption *option,
|
|
||||||
QPainter *painter,
|
|
||||||
const QWidget *widget = nullptr) const;
|
|
||||||
//! [3]
|
|
||||||
|
@ -11,23 +11,6 @@ int ret = QMessageBox::warning(this, tr("My Application"),
|
|||||||
//! [0]
|
//! [0]
|
||||||
|
|
||||||
|
|
||||||
//! [1]
|
|
||||||
QMessageBox msgBox;
|
|
||||||
msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
|
|
||||||
switch (msgBox.exec()) {
|
|
||||||
case QMessageBox::Yes:
|
|
||||||
// yes was clicked
|
|
||||||
break;
|
|
||||||
case QMessageBox::No:
|
|
||||||
// no was clicked
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
// should never be reached
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
//! [1]
|
|
||||||
|
|
||||||
|
|
||||||
//! [2]
|
//! [2]
|
||||||
QMessageBox msgBox;
|
QMessageBox msgBox;
|
||||||
QPushButton *connectButton = msgBox.addButton(tr("Connect"), QMessageBox::ActionRole);
|
QPushButton *connectButton = msgBox.addButton(tr("Connect"), QMessageBox::ActionRole);
|
||||||
@ -100,12 +83,3 @@ switch (ret) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
//! [7]
|
//! [7]
|
||||||
|
|
||||||
//! [9]
|
|
||||||
QMessageBox msgBox(this);
|
|
||||||
msgBox.setText(tr("The document has been modified.\n"
|
|
||||||
"Do you want to save your changes?"));
|
|
||||||
msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard
|
|
||||||
| QMessageBox::Cancel);
|
|
||||||
msgBox.setDefaultButton(QMessageBox::Save);
|
|
||||||
//! [9]
|
|
||||||
|
@ -71,24 +71,6 @@ rect.deviceTransform(view->viewportTransform()).inverted().map(QPointF(100, 100)
|
|||||||
//! [5]
|
//! [5]
|
||||||
|
|
||||||
|
|
||||||
//! [6]
|
|
||||||
// Rotate an item 45 degrees around (0, 0).
|
|
||||||
item->rotate(45);
|
|
||||||
|
|
||||||
// Rotate an item 45 degrees around (x, y).
|
|
||||||
item->setTransform(QTransform().translate(x, y).rotate(45).translate(-x, -y));
|
|
||||||
//! [6]
|
|
||||||
|
|
||||||
|
|
||||||
//! [7]
|
|
||||||
// Scale an item by 3x2 from its origin
|
|
||||||
item->scale(3, 2);
|
|
||||||
|
|
||||||
// Scale an item by 3x2 from (x, y)
|
|
||||||
item->setTransform(QTransform().translate(x, y).scale(3, 2).translate(-x, -y));
|
|
||||||
//! [7]
|
|
||||||
|
|
||||||
|
|
||||||
//! [8]
|
//! [8]
|
||||||
QRectF CircleItem::boundingRect() const
|
QRectF CircleItem::boundingRect() const
|
||||||
{
|
{
|
||||||
@ -223,19 +205,3 @@ QTransform xform = item->deviceTransform(view->viewportTransform());
|
|||||||
QRect deviceRect = xform.mapRect(rect).toAlignedRect();
|
QRect deviceRect = xform.mapRect(rect).toAlignedRect();
|
||||||
view->viewport()->scroll(dx, dy, deviceRect);
|
view->viewport()->scroll(dx, dy, deviceRect);
|
||||||
//! [19]
|
//! [19]
|
||||||
|
|
||||||
//! [20]
|
|
||||||
item->setTransform(QTransform().rotate(angle), true);
|
|
||||||
//! [20]
|
|
||||||
|
|
||||||
//! [21]
|
|
||||||
setTransform(QTransform::fromScale(sx, sy), true);
|
|
||||||
//! [21]
|
|
||||||
|
|
||||||
//! [22]
|
|
||||||
setTransform(QTransform().shear(sh, sv), true);
|
|
||||||
//! [22]
|
|
||||||
|
|
||||||
//! [23]
|
|
||||||
setTransform(QTransform::fromTranslate(dx, dy), true);
|
|
||||||
//! [23]
|
|
||||||
|
@ -27,16 +27,6 @@ view.setCacheMode(QGraphicsView::CacheBackground);
|
|||||||
//! [2]
|
//! [2]
|
||||||
|
|
||||||
|
|
||||||
//! [3]
|
|
||||||
QGraphicsScene scene;
|
|
||||||
scene.addText("GraphicsView rotated clockwise");
|
|
||||||
|
|
||||||
QGraphicsView view(&scene);
|
|
||||||
view.rotate(90); // the text is rendered with a 90 degree clockwise rotation
|
|
||||||
view.show();
|
|
||||||
//! [3]
|
|
||||||
|
|
||||||
|
|
||||||
//! [4]
|
//! [4]
|
||||||
QGraphicsScene scene;
|
QGraphicsScene scene;
|
||||||
scene.addItem(...
|
scene.addItem(...
|
||||||
|
@ -31,26 +31,6 @@ QApplication::setStyle(QStyleFactory::create("Fusion"));
|
|||||||
//! [1]
|
//! [1]
|
||||||
|
|
||||||
|
|
||||||
// ### fixme: Qt 6: Remove [2]
|
|
||||||
//! [2]
|
|
||||||
int main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
QApplication::setColorSpec(QApplication::ManyColor);
|
|
||||||
QApplication app(argc, argv);
|
|
||||||
...
|
|
||||||
return app.exec();
|
|
||||||
}
|
|
||||||
//! [2]
|
|
||||||
|
|
||||||
|
|
||||||
//! [3]
|
|
||||||
QSize MyWidget::sizeHint() const
|
|
||||||
{
|
|
||||||
return QSize(80, 25);
|
|
||||||
}
|
|
||||||
//! [3]
|
|
||||||
|
|
||||||
|
|
||||||
//! [4]
|
//! [4]
|
||||||
void showAllHiddenTopLevelWidgets()
|
void showAllHiddenTopLevelWidgets()
|
||||||
{
|
{
|
||||||
@ -73,82 +53,8 @@ void updateAllWidgets()
|
|||||||
//! [5]
|
//! [5]
|
||||||
|
|
||||||
|
|
||||||
//! [6]
|
|
||||||
int main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
QApplication::setDesktopSettingsAware(false);
|
|
||||||
QApplication app(argc, argv);
|
|
||||||
...
|
|
||||||
return app.exec();
|
|
||||||
}
|
|
||||||
//! [6]
|
|
||||||
|
|
||||||
|
|
||||||
//! [7]
|
//! [7]
|
||||||
if ((startPos - currentPos).manhattanLength() >=
|
if ((startPos - currentPos).manhattanLength() >=
|
||||||
QApplication::startDragDistance())
|
QApplication::startDragDistance())
|
||||||
startTheDrag();
|
startTheDrag();
|
||||||
//! [7]
|
//! [7]
|
||||||
|
|
||||||
|
|
||||||
//! [8]
|
|
||||||
void MyApplication::commitData(QSessionManager& manager)
|
|
||||||
{
|
|
||||||
if (manager.allowsInteraction()) {
|
|
||||||
int ret = QMessageBox::warning(
|
|
||||||
mainWindow,
|
|
||||||
tr("My Application"),
|
|
||||||
tr("Save changes to document?"),
|
|
||||||
QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
|
|
||||||
|
|
||||||
switch (ret) {
|
|
||||||
case QMessageBox::Save:
|
|
||||||
manager.release();
|
|
||||||
if (!saveDocument())
|
|
||||||
manager.cancel();
|
|
||||||
break;
|
|
||||||
case QMessageBox::Discard:
|
|
||||||
break;
|
|
||||||
case QMessageBox::Cancel:
|
|
||||||
default:
|
|
||||||
manager.cancel();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// we did not get permission to interact, then
|
|
||||||
// do something reasonable instead
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//! [8]
|
|
||||||
|
|
||||||
|
|
||||||
//! [9]
|
|
||||||
appname -session id
|
|
||||||
//! [9]
|
|
||||||
|
|
||||||
|
|
||||||
//! [10]
|
|
||||||
const QStringList commands = mySession.restartCommand();
|
|
||||||
for (const QString &command : commands)
|
|
||||||
do_something(command);
|
|
||||||
//! [10]
|
|
||||||
|
|
||||||
|
|
||||||
//! [11]
|
|
||||||
const QStringList commands = mySession.discardCommand();
|
|
||||||
for (const QString &command : commands)
|
|
||||||
do_something(command);
|
|
||||||
//! [11]
|
|
||||||
|
|
||||||
|
|
||||||
//! [12]
|
|
||||||
QWidget *widget = QApplication::widgetAt(x, y);
|
|
||||||
if (widget)
|
|
||||||
widget = widget->window();
|
|
||||||
//! [12]
|
|
||||||
|
|
||||||
|
|
||||||
//! [13]
|
|
||||||
QWidget *widget = QApplication::widgetAt(point);
|
|
||||||
if (widget)
|
|
||||||
widget = widget->window();
|
|
||||||
//! [13]
|
|
||||||
|
@ -22,19 +22,6 @@ aWidget->window()->setWindowTitle("New Window Title");
|
|||||||
//! [3]
|
//! [3]
|
||||||
|
|
||||||
|
|
||||||
//! [4]
|
|
||||||
QFont font("Helvetica", 12, QFont::Bold);
|
|
||||||
setFont(font);
|
|
||||||
//! [4]
|
|
||||||
|
|
||||||
|
|
||||||
//! [5]
|
|
||||||
QFont font;
|
|
||||||
font.setBold(false);
|
|
||||||
setFont(font);
|
|
||||||
//! [5]
|
|
||||||
|
|
||||||
|
|
||||||
//! [6]
|
//! [6]
|
||||||
setCursor(Qt::IBeamCursor);
|
setCursor(Qt::IBeamCursor);
|
||||||
//! [6]
|
//! [6]
|
||||||
|
@ -37,11 +37,5 @@ int main()
|
|||||||
//! [2]
|
//! [2]
|
||||||
}
|
}
|
||||||
|
|
||||||
//! [3]
|
|
||||||
QListIterator<int> it(splitter->sizes());
|
|
||||||
while (it.hasNext())
|
|
||||||
processSize(it.next());
|
|
||||||
//! [3]
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -88,17 +88,6 @@ for(QDomNode n = element.firstChild(); !n.isNull(); n = n.nextSibling())
|
|||||||
}
|
}
|
||||||
//! [10]
|
//! [10]
|
||||||
|
|
||||||
}
|
|
||||||
void FirstElement()
|
|
||||||
{
|
|
||||||
//! [11]
|
|
||||||
QDomDocument doc;
|
|
||||||
QDomElement root = doc.firstChildElement("database");
|
|
||||||
QDomElement elt = root.firstChildElement("entry");
|
|
||||||
for (; !elt.isNull(); elt = elt.nextSiblingElement("entry")) {
|
|
||||||
// ...
|
|
||||||
}
|
|
||||||
//! [11]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileContent()
|
void FileContent()
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
// Copyright (C) 2016 The Qt Company Ltd.
|
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
|
||||||
|
|
||||||
//! [0]
|
|
||||||
xmlReader.setFeature("http://xml.org/sax/features/namespace-prefixes", true);
|
|
||||||
//! [0]
|
|
@ -133,7 +133,6 @@ bool Handler::characters (const QString &chars)
|
|||||||
that parsing should stop.
|
that parsing should stop.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//! [0]
|
|
||||||
bool Handler::fatalError (const QXmlParseException & exception)
|
bool Handler::fatalError (const QXmlParseException & exception)
|
||||||
{
|
{
|
||||||
qWarning() << "Fatal error on line" << exception.lineNumber()
|
qWarning() << "Fatal error on line" << exception.lineNumber()
|
||||||
@ -142,4 +141,3 @@ bool Handler::fatalError (const QXmlParseException & exception)
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//! [0]
|
|
||||||
|
@ -110,10 +110,8 @@ void RSSListing::fetch()
|
|||||||
delete handler;
|
delete handler;
|
||||||
handler = new Handler;
|
handler = new Handler;
|
||||||
|
|
||||||
//! [0]
|
|
||||||
xmlReader.setContentHandler(handler);
|
xmlReader.setContentHandler(handler);
|
||||||
xmlReader.setErrorHandler(handler);
|
xmlReader.setErrorHandler(handler);
|
||||||
//! [0]
|
|
||||||
|
|
||||||
connect(handler, SIGNAL(newItem(QString&,QString&)),
|
connect(handler, SIGNAL(newItem(QString&,QString&)),
|
||||||
this, SLOT(addItem(QString&,QString&)));
|
this, SLOT(addItem(QString&,QString&)));
|
||||||
@ -136,7 +134,6 @@ void RSSListing::fetch()
|
|||||||
If parsing fails for any reason, we abort the fetch.
|
If parsing fails for any reason, we abort the fetch.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//! [1]
|
|
||||||
void RSSListing::readData(const QHttpResponseHeader &resp)
|
void RSSListing::readData(const QHttpResponseHeader &resp)
|
||||||
{
|
{
|
||||||
bool ok;
|
bool ok;
|
||||||
@ -157,7 +154,6 @@ void RSSListing::readData(const QHttpResponseHeader &resp)
|
|||||||
http.abort();
|
http.abort();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//! [1]
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Finishes processing an HTTP request.
|
Finishes processing an HTTP request.
|
||||||
|
Loading…
Reference in New Issue
Block a user