⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 displayshape.h

📁 qt-x11-opensource-src-4.1.4.tar.gz源码
💻 H
字号:
/******************************************************************************** Copyright (C) 2005-2006 Trolltech ASA. All rights reserved.**** This file is part of the example classes 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://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** 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 DISPLAYSHAPE_H#define DISPLAYSHAPE_H#include <QBrush>#include <QFont>#include <QHash>#include <QPainterPath>#include <QPen>#include <QPointF>#include <QSizeF>#include <QWidget>class DisplayShape{public:    DisplayShape(const QPointF &position, const QSizeF &maxSize);    virtual ~DisplayShape() {};    virtual bool animate();    virtual bool contains(const QString &key) const;    virtual bool isInteractive() const;    virtual QVariant metaData(const QString &key) const;    virtual void paint(QPainter *painter) const;    virtual QPointF position() const;    virtual QPointF target() const;    virtual QRectF rect() const;    virtual QSizeF size() const;    virtual void removeMetaData(const QString &key);    virtual void setInteractive(bool enable);    virtual void setMetaData(const QString &key, const QVariant &value);    virtual void setPosition(const QPointF &point);    virtual void setSize(const QSizeF &size);    virtual void setTarget(const QPointF &point);protected:    QHash<QString,QVariant> meta;    QImage image;    QPointF pos;    QPointF targetPos;    QSizeF maxSize;    bool interactive;};class PanelShape : public DisplayShape{public:    PanelShape(const QPainterPath &path, const QBrush &normal,              const QBrush &highlighted, const QPen &pen,              const QPointF &position, const QSizeF &maxSize);    bool animate();    void paint(QPainter *painter) const;    QRectF rect() const;private:    QBrush brush;    QBrush highlightedBrush;    QBrush normalBrush;    QPainterPath path;    QPen pen;};class TitleShape : public DisplayShape{public:    TitleShape(const QString &text, const QFont &font, const QPen &pen,               const QPointF &position, const QSizeF &maxSize,               Qt::Alignment alignment = Qt::AlignVCenter | Qt::AlignLeft);    bool animate();    void paint(QPainter *painter) const;    QRectF rect() const;private:    QFont font;    QString text;    QPen pen;    QPointF baselineStart;    QRectF textRect;    Qt::Alignment alignment;};class ImageShape : public DisplayShape{public:    ImageShape(const QImage &original, const QPointF &position,               const QSizeF &maxSize, int alpha = 0,               Qt::Alignment alignment = Qt::AlignCenter);    bool animate();    void paint(QPainter *painter) const;    QRectF rect() const;private:    void redraw();    int alpha;    QImage source;    QPointF offset;    Qt::Alignment alignment;};class DocumentShape : public DisplayShape{public:    DocumentShape(const QString &text, const QFont &font,                  const QPointF &position, const QSizeF &maxSize,                  int alpha = 0);    ~DocumentShape();    bool animate();    void paint(QPainter *painter) const;    QRectF rect() const;private:    void redraw();    QImage source;    int alpha;    QTextDocument textDocument;};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -