- Qt 5.5
- Qt Widgets
- Text Edit
- textedit.h Example File
- Qt 5.5.1 Reference Documentation

# textedit.h Example File

richtext/textedit/textedit.h

    /****************************************************************************
    **
    ** Copyright (C) 2015 The Qt Company Ltd.
    ** Contact: http://www.qt.io/licensing/
    **
    ** This file is part of the demonstration applications of the Qt Toolkit.
    **
    ** $QT_BEGIN_LICENSE:LGPL21$
    ** Commercial License Usage
    ** Licensees holding valid commercial Qt licenses may use this file in
    ** accordance with the commercial license agreement provided with the
    ** Software or, alternatively, in accordance with the terms contained in
    ** a written agreement between you and The Qt Company. For licensing terms
    ** and conditions see http://www.qt.io/terms-conditions. For further
    ** information use the contact form at http://www.qt.io/contact-us.
    **
    ** GNU Lesser General Public License Usage
    ** Alternatively, this file may be used under the terms of the GNU Lesser
    ** General Public License version 2.1 or version 3 as published by the Free
    ** Software Foundation and appearing in the file LICENSE.LGPLv21 and
    ** LICENSE.LGPLv3 included in the packaging of this file. Please review the
    ** following information to ensure the GNU Lesser General Public License
    ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
    ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
    **
    ** As a special exception, The Qt Company gives you certain additional
    ** rights. These rights are described in The Qt Company LGPL Exception
    ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
    **
    ** $QT_END_LICENSE$
    **
    ****************************************************************************/

    #ifndef TEXTEDIT_H
    #define TEXTEDIT_H

    #include <QMainWindow>
    #include <QMap>
    #include <QPointer>

    class QAction;
    class QComboBox;
    class QFontComboBox;
    class QTextEdit;
    class QTextCharFormat;
    class QMenu;
    class QPrinter;

    class TextEdit : public QMainWindow
    {
        Q_OBJECT

    public:
        TextEdit(QWidget *parent = 0);

    protected:
        virtual void closeEvent(QCloseEvent *e) Q_DECL_OVERRIDE;

    private:
        void setupFileActions();
        void setupEditActions();
        void setupTextActions();
        bool load(const QString &f);
        bool maybeSave();
        void setCurrentFileName(const QString &fileName);

    private slots:
        void fileNew();
        void fileOpen();
        bool fileSave();
        bool fileSaveAs();
        void filePrint();
        void filePrintPreview();
        void filePrintPdf();

        void textBold();
        void textUnderline();
        void textItalic();
        void textFamily(const QString &f);
        void textSize(const QString &p);
        void textStyle(int styleIndex);
        void textColor();
        void textAlign(QAction *a);

        void currentCharFormatChanged(const QTextCharFormat &format);
        void cursorPositionChanged();

        void clipboardDataChanged();
        void about();
        void printPreview(QPrinter *);

    private:
        void mergeFormatOnWordOrSelection(const QTextCharFormat &format);
        void fontChanged(const QFont &f);
        void colorChanged(const QColor &c);
        void alignmentChanged(Qt::Alignment a);

        QAction *actionSave;
        QAction *actionTextBold;
        QAction *actionTextUnderline;
        QAction *actionTextItalic;
        QAction *actionTextColor;
        QAction *actionAlignLeft;
        QAction *actionAlignCenter;
        QAction *actionAlignRight;
        QAction *actionAlignJustify;
        QAction *actionUndo;
        QAction *actionRedo;
        QAction *actionCut;
        QAction *actionCopy;
        QAction *actionPaste;

        QComboBox *comboStyle;
        QFontComboBox *comboFont;
        QComboBox *comboSize;

        QToolBar *tb;
        QString fileName;
        QTextEdit *textEdit;
    };

    #endif // TEXTEDIT_H