QtBase  v6.3.1
main.cpp
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2016 The Qt Company Ltd.
4 ** Contact: https://www.qt.io/licensing/
5 **
6 ** This file is part of the test suite of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:GPL-EXCEPT$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and The Qt Company. For licensing terms
14 ** and conditions see https://www.qt.io/terms-conditions. For further
15 ** information use the contact form at https://www.qt.io/contact-us.
16 **
17 ** GNU General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU
19 ** General Public License version 3 as published by the Free Software
20 ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
21 ** included in the packaging of this file. Please review the following
22 ** information to ensure the GNU General Public License requirements will
23 ** be met: https://www.gnu.org/licenses/gpl-3.0.html.
24 **
25 ** $QT_END_LICENSE$
26 **
27 ****************************************************************************/
28 
29 #include <QCoreApplication>
30 #include <QLoggingCategory>
31 
32 #ifdef Q_CC_GNU
33 #define NEVER_INLINE __attribute__((__noinline__))
34 #else
35 #define NEVER_INLINE
36 #endif
37 
38 struct T {
39  T() { qDebug("static constructor"); }
40  ~T() { qDebug("static destructor"); }
41 } t;
42 
43 class MyClass : public QObject
44 {
45  Q_OBJECT
46 public slots:
47  virtual NEVER_INLINE QString mySlot1();
48 private:
49  virtual NEVER_INLINE void myFunction(int a);
50 };
51 
53 {
54  myFunction(34);
55  return QString();
56 }
57 
58 void MyClass::myFunction(int a)
59 {
60  qDebug() << "from_a_function" << a;
61 }
62 
63 int main(int argc, char **argv)
64 {
65  QCoreApplication app(argc, argv);
66  app.setApplicationName("tst_qlogging");
67 
68  qSetMessagePattern("[%{type}] %{message}");
69 
70  qDebug("qDebug");
71  qInfo("qInfo");
72  qWarning("qWarning");
73  qCritical("qCritical");
74 
75  QLoggingCategory cat("category");
76  qCWarning(cat) << "qDebug with category";
77 
79 
80  qDebug("qDebug2");
81 
82  MyClass cl;
83  QMetaObject::invokeMethod(&cl, "mySlot1");
84 
85  return 0;
86 }
87 
88 #include "main.moc"
virtual NEVER_INLINE QString mySlot1()
Definition: main.cpp:52
The QCoreApplication class provides an event loop for Qt applications without UI.
static void setApplicationName(const QString &application)
The QLoggingCategory class represents a category, or 'area' in the logging infrastructure.
The QObject class is the base class of all Qt objects.
Definition: qobject.h:125
The QString class provides a Unicode character string.
Definition: qstring.h:388
int main(int argc, char **argv)
Definition: main.cpp:1
#define QString()
Definition: parse-defines.h:51
#define qCritical
Definition: qlogging.h:180
#define qInfo
Definition: qlogging.h:178
#define qDebug
[1]
Definition: qlogging.h:177
Q_CORE_EXPORT void qSetMessagePattern(const QString &messagePattern)
#define qWarning
Definition: qlogging.h:179
#define qCWarning(category,...)
GLboolean GLboolean GLboolean GLboolean a
[7]
#define Q_OBJECT
Definition: qtmetamacros.h:158
#define slots
Definition: qtmetamacros.h:76
QApplication app(argc, argv)
[0]
static bool invokeMethod(QObject *obj, const char *member, Qt::ConnectionType, QGenericReturnArgument ret, QGenericArgument val0=QGenericArgument(nullptr), QGenericArgument val1=QGenericArgument(), QGenericArgument val2=QGenericArgument(), QGenericArgument val3=QGenericArgument(), QGenericArgument val4=QGenericArgument(), QGenericArgument val5=QGenericArgument(), QGenericArgument val6=QGenericArgument(), QGenericArgument val7=QGenericArgument(), QGenericArgument val8=QGenericArgument(), QGenericArgument val9=QGenericArgument())
Definition: main.cpp:38
T()
Definition: main.cpp:39
~T()
Definition: main.cpp:40
#define NEVER_INLINE
Definition: main.cpp:35
struct T t