QGIS API Documentation  3.16.0-Hannover (43b64b13f3)
characterwidget.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 ** Contact: Nokia Corporation ([email protected])
6 **
7 ** This library/program is free software; you can redistribute it
8 ** and/or modify it under the terms of the GNU Library General Public
9 ** License as published by the Free Software Foundation; either
10 ** version 2 of the License, or ( at your option ) any later version.
11 **
12 ** This file is part of the examples of the Qt Toolkit.
13 **
14 ** $QT_BEGIN_LICENSE:LGPL$
15 ** Commercial Usage
16 ** Licensees holding valid Qt Commercial licenses may use this file in
17 ** accordance with the Qt Commercial License Agreement provided with the
18 ** Software or, alternatively, in accordance with the terms contained in
19 ** a written agreement between you and Nokia.
20 **
21 ** GNU Lesser General Public License Usage
22 ** Alternatively, this file may be used under the terms of the GNU Lesser
23 ** General Public License version 2.1 as published by the Free Software
24 ** Foundation and appearing in the file LICENSE.LGPL included in the
25 ** packaging of this file. Please review the following information to
26 ** ensure the GNU Lesser General Public License version 2.1 requirements
27 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
28 **
29 ** In addition, as a special exception, Nokia gives you certain additional
30 ** rights. These rights are described in the Nokia Qt LGPL Exception
31 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
32 **
33 ** GNU General Public License Usage
34 ** Alternatively, this file may be used under the terms of the GNU
35 ** General Public License version 3.0 as published by the Free Software
36 ** Foundation and appearing in the file LICENSE.GPL included in the
37 ** packaging of this file. Please review the following information to
38 ** ensure the GNU General Public License version 3.0 requirements will be
39 ** met: http://www.gnu.org/copyleft/gpl.html.
40 **
41 ** If you have questions regarding the use of this file, please contact
42 ** Nokia at [email protected].
43 ** $QT_END_LICENSE$
44 **
45 ****************************************************************************/
46 
47 #ifndef CHARACTERWIDGET_H
48 #define CHARACTERWIDGET_H
49 
50 #include "qgis_sip.h"
51 #include "qgis_gui.h"
52 
53 #include <QFont>
54 #include <QPoint>
55 #include <QSize>
56 #include <QString>
57 #include <QWidget>
58 
59 
60 class QMouseEvent;
61 class QPaintEvent;
62 
69 class GUI_EXPORT CharacterWidget : public QWidget
70 {
71  Q_OBJECT
72  Q_PROPERTY( QChar character READ character WRITE setCharacter NOTIFY characterSelected )
73  Q_PROPERTY( int columns READ columns WRITE setColumns )
74  Q_PROPERTY( QFont font READ font WRITE setFont )
75 
76  public:
77 
81  CharacterWidget( QWidget *parent SIP_TRANSFERTHIS = nullptr );
82 
83  QSize sizeHint() const override;
84 
88  int columns() const { return mColumns; }
89 
93  int squareSize() const { return mSquareSize; }
94 
100  QChar character() const { return QChar( mLastKey ); }
101 
107  QFont font() const { return mDisplayFont; }
108 
109  public slots:
110 
116  void setFont( const QFont &font );
117 
122  void setFontSize( double fontSize );
123 
128  void setFontStyle( const QString &fontStyle );
129 
130  void updateFontMerging( bool enable );
131 
136  void setColumns( int columns );
137 
143  void setCharacter( QChar character );
144 
150  void clearCharacter();
151 
152  signals:
153 
157  void characterSelected( QChar character );
158 
159  protected:
160  void keyPressEvent( QKeyEvent *event ) override;
161  void mouseMoveEvent( QMouseEvent *event ) override;
162  void mousePressEvent( QMouseEvent *event ) override;
163  void paintEvent( QPaintEvent *event ) override;
164  void resizeEvent( QResizeEvent *event ) override;
165 
166  private:
167  QFont mDisplayFont;
168  int mColumns = 13;
169  int mLastKey = -1;
170  int mSquareSize = 24;
171 };
172 
173 #endif
CharacterWidget::columns
int columns() const
Returns the number of columns of characters shown in the widget.
Definition: characterwidget.h:88
CharacterWidget
A widget for displaying characters available in a preset font, and allowing users to select an indivi...
Definition: characterwidget.h:70
CharacterWidget::characterSelected
void characterSelected(QChar character)
Emitted when a character is selected in the widget.
CharacterWidget::squareSize
int squareSize() const
Returns the size (in pixels) of the square used to render each character preview.
Definition: characterwidget.h:93
CharacterWidget::character
QChar character() const
Returns the currently selected character in the widget.
Definition: characterwidget.h:100
qgis_sip.h
CharacterWidget::font
QFont font() const
Returns the font shown in the widget.
Definition: characterwidget.h:107
SIP_TRANSFERTHIS
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53