📄 qtextformat.h
字号:
/******************************************************************************** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved.**** This file is part of the QtGui module of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.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 GNU** General Public Licensing requirements will be met:** http://trolltech.com/products/qt/licenses/licensing/opensource/**** If you are unsure which license is appropriate for your use, please** review the following information:** http://trolltech.com/products/qt/licenses/licensing/licensingoverview** or contact the sales department at sales@trolltech.com.**** In addition, as a special exception, Trolltech gives you certain** additional rights. These rights are described in the Trolltech GPL** Exception version 1.0, which can be found at** http://www.trolltech.com/products/qt/gplexception/ and in the file** GPL_EXCEPTION.txt in this package.**** In addition, as a special exception, Trolltech, as the sole copyright** holder for Qt Designer, grants users of the Qt/Eclipse Integration** plug-in the right for the Qt/Eclipse Integration to link to** functionality provided by Qt Designer and its related libraries.**** Trolltech reserves all rights not expressly granted herein.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#ifndef QTEXTFORMAT_H#define QTEXTFORMAT_H#include <QtGui/qcolor.h>#include <QtGui/qfont.h>#include <QtCore/qshareddata.h>#include <QtCore/qvector.h>#include <QtCore/qvariant.h>#include <QtGui/qpen.h>#include <QtGui/qbrush.h>QT_BEGIN_HEADERQT_MODULE(Gui)class QString;class QVariant;class QFont;class QTextFormatCollection;class QTextFormatPrivate;class QTextBlockFormat;class QTextCharFormat;class QTextListFormat;class QTextTableFormat;class QTextFrameFormat;class QTextImageFormat;class QTextFormat;class QTextObject;class QTextCursor;class QTextDocument;class QTextLength;Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QTextLength &);Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QTextLength &);class Q_GUI_EXPORT QTextLength{public: enum Type { VariableLength = 0, FixedLength, PercentageLength }; inline QTextLength() : lengthType(VariableLength), fixedValueOrPercentage(0) {} inline explicit QTextLength(Type type, qreal value); inline Type type() const { return lengthType; } inline qreal value(qreal maximumLength) const { switch (lengthType) { case FixedLength: return fixedValueOrPercentage; case VariableLength: return maximumLength; case PercentageLength: return fixedValueOrPercentage * maximumLength / qreal(100); } return -1; } inline qreal rawValue() const { return fixedValueOrPercentage; } inline bool operator==(const QTextLength &other) const { return lengthType == other.lengthType && qFuzzyCompare(fixedValueOrPercentage, other.fixedValueOrPercentage); } inline bool operator!=(const QTextLength &other) const { return lengthType != other.lengthType || !qFuzzyCompare(fixedValueOrPercentage, other.fixedValueOrPercentage); } operator QVariant() const;private: Type lengthType; qreal fixedValueOrPercentage; friend Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QTextLength &); friend Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QTextLength &);};inline QTextLength::QTextLength(Type atype, qreal avalue) : lengthType(atype), fixedValueOrPercentage(avalue) {}Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QTextFormat &);Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QTextFormat &);class Q_GUI_EXPORT QTextFormat{ Q_GADGET Q_ENUMS(FormatType Property ObjectTypes)public: enum FormatType { InvalidFormat = -1, BlockFormat = 1, CharFormat = 2, ListFormat = 3, TableFormat = 4, FrameFormat = 5, UserFormat = 100 }; enum Property { ObjectIndex = 0x0, // paragraph and char CssFloat = 0x0800, LayoutDirection = 0x0801, OutlinePen = 0x810, BackgroundBrush = 0x820, ForegroundBrush = 0x821, // Internal to qtextlayout.cpp: ObjectSelectionBrush = 0x822 // paragraph BlockAlignment = 0x1010, BlockTopMargin = 0x1030, BlockBottomMargin = 0x1031, BlockLeftMargin = 0x1032, BlockRightMargin = 0x1033, TextIndent = 0x1034, BlockIndent = 0x1040, BlockNonBreakableLines = 0x1050, BlockTrailingHorizontalRulerWidth = 0x1060, // character properties FontFamily = 0x2000, FontPointSize = 0x2001, FontSizeAdjustment = 0x2002, FontSizeIncrement = FontSizeAdjustment, // old name, compat FontWeight = 0x2003, FontItalic = 0x2004, FontUnderline = 0x2005, // deprecated, use TextUnderlineStyle instead FontOverline = 0x2006, FontStrikeOut = 0x2007, FontFixedPitch = 0x2008, FontPixelSize = 0x2009, TextUnderlineColor = 0x2010, TextVerticalAlignment = 0x2021, TextOutline = 0x2022, TextUnderlineStyle = 0x2023, TextToolTip = 0x2024, IsAnchor = 0x2030, AnchorHref = 0x2031, AnchorName = 0x2032, ObjectType = 0x2f00, // list properties ListStyle = 0x3000, ListIndent = 0x3001, // table and frame properties FrameBorder = 0x4000, FrameMargin = 0x4001, FramePadding = 0x4002, FrameWidth = 0x4003, FrameHeight = 0x4004, FrameTopMargin = 0x4005, FrameBottomMargin = 0x4006, FrameLeftMargin = 0x4007, FrameRightMargin = 0x4008, FrameBorderBrush = 0x4009, FrameBorderStyle = 0x4010, TableColumns = 0x4100, TableColumnWidthConstraints = 0x4101, TableCellSpacing = 0x4102, TableCellPadding = 0x4103, TableHeaderRowCount = 0x4104, // table cell properties TableCellRowSpan = 0x4810, TableCellColumnSpan = 0x4811, // image properties ImageName = 0x5000, ImageWidth = 0x5010, ImageHeight = 0x5011, // selection properties FullWidthSelection = 0x06000, // page break properties PageBreakPolicy = 0x7000, // -- UserProperty = 0x100000 }; enum ObjectTypes { NoObject, ImageObject, TableObject, UserObject = 0x1000 }; enum PageBreakFlag { PageBreak_Auto = 0, PageBreak_AlwaysBefore = 0x001, PageBreak_AlwaysAfter = 0x010 // PageBreak_AlwaysInside = 0x100 }; Q_DECLARE_FLAGS(PageBreakFlags, PageBreakFlag) QTextFormat(); explicit QTextFormat(int type); QTextFormat(const QTextFormat &rhs); QTextFormat &operator=(const QTextFormat &rhs); ~QTextFormat(); void merge(const QTextFormat &other); inline bool isValid() const { return type() != InvalidFormat; } int type() const; int objectIndex() const; void setObjectIndex(int object); QVariant property(int propertyId) const; void setProperty(int propertyId, const QVariant &value); void clearProperty(int propertyId); bool hasProperty(int propertyId) const; bool boolProperty(int propertyId) const; int intProperty(int propertyId) const; qreal doubleProperty(int propertyId) const; QString stringProperty(int propertyId) const; QColor colorProperty(int propertyId) const; QPen penProperty(int propertyId) const; QBrush brushProperty(int propertyId) const; QTextLength lengthProperty(int propertyId) const; QVector<QTextLength> lengthVectorProperty(int propertyId) const; void setProperty(int propertyId, const QVector<QTextLength> &lengths); QMap<int, QVariant> properties() const; int propertyCount() const; inline void setObjectType(int type); inline int objectType() const { return intProperty(ObjectType); } inline bool isCharFormat() const { return type() == CharFormat; } inline bool isBlockFormat() const { return type() == BlockFormat; } inline bool isListFormat() const { return type() == ListFormat; } inline bool isFrameFormat() const { return type() == FrameFormat; } inline bool isImageFormat() const { return type() == CharFormat && objectType() == ImageObject; } inline bool isTableFormat() const { return type() == FrameFormat && objectType() == TableObject; } QTextBlockFormat toBlockFormat() const; QTextCharFormat toCharFormat() const; QTextListFormat toListFormat() const; QTextTableFormat toTableFormat() const; QTextFrameFormat toFrameFormat() const; QTextImageFormat toImageFormat() const; bool operator==(const QTextFormat &rhs) const; inline bool operator!=(const QTextFormat &rhs) const { return !operator==(rhs); } operator QVariant() const; inline void setLayoutDirection(Qt::LayoutDirection direction) { setProperty(QTextFormat::LayoutDirection, direction); } inline Qt::LayoutDirection layoutDirection() const { return Qt::LayoutDirection(intProperty(QTextFormat::LayoutDirection)); } inline void setBackground(const QBrush &brush) { setProperty(BackgroundBrush, brush); } inline QBrush background() const { return brushProperty(BackgroundBrush); } inline void clearBackground() { clearProperty(BackgroundBrush); } inline void setForeground(const QBrush &brush) { setProperty(ForegroundBrush, brush); } inline QBrush foreground() const { return brushProperty(ForegroundBrush); } inline void clearForeground() { clearProperty(ForegroundBrush); }private: QSharedDataPointer<QTextFormatPrivate> d; qint32 format_type; friend class QTextFormatCollection; friend class QTextCharFormat; friend Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QTextFormat &); friend Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QTextFormat &);};inline void QTextFormat::setObjectType(int atype){ setProperty(ObjectType, atype); }Q_DECLARE_OPERATORS_FOR_FLAGS(QTextFormat::PageBreakFlags)class Q_GUI_EXPORT QTextCharFormat : public QTextFormat{public: enum VerticalAlignment { AlignNormal = 0, AlignSuperScript, AlignSubScript, AlignMiddle, AlignTop, AlignBottom }; enum UnderlineStyle { // keep in sync with Qt::PenStyle! NoUnderline, SingleUnderline, DashUnderline, DotLine, DashDotLine, DashDotDotLine, WaveUnderline, SpellCheckUnderline }; QTextCharFormat(); bool isValid() const { return isCharFormat(); } void setFont(const QFont &font); QFont font() const; inline void setFontFamily(const QString &family) { setProperty(FontFamily, family); } inline QString fontFamily() const { return stringProperty(FontFamily); } inline void setFontPointSize(qreal size) { setProperty(FontPointSize, size); } inline qreal fontPointSize() const { return doubleProperty(FontPointSize); } inline void setFontWeight(int weight) { if (weight == QFont::Normal) weight = 0; setProperty(FontWeight, weight); } inline int fontWeight() const { int weight = intProperty(FontWeight); if (weight == 0) weight = QFont::Normal; return weight; } inline void setFontItalic(bool italic)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -