📄 gradients.h
字号:
/******************************************************************************** Copyright (C) 2005-2007 Trolltech ASA. All rights reserved.**** This file is part of the demonstration applications 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 GRADIENTS_H#define GRADIENTS_H#include "arthurwidgets.h"#include <QtGui>class HoverPoints;class ShadeWidget : public QWidget{ Q_OBJECTpublic: enum ShadeType { RedShade, GreenShade, BlueShade, ARGBShade }; ShadeWidget(ShadeType type, QWidget *parent); void setGradientStops(const QGradientStops &stops); void paintEvent(QPaintEvent *e); QSize sizeHint() const { return QSize(150, 40); } QPolygonF points() const; HoverPoints *hoverPoints() const { return m_hoverPoints; } uint colorAt(int x);signals: void colorsChanged();private: void generateShade(); ShadeType m_shade_type; QImage m_shade; HoverPoints *m_hoverPoints; QLinearGradient m_alpha_gradient;};class GradientEditor : public QWidget{ Q_OBJECTpublic: GradientEditor(QWidget *parent); void setGradientStops(const QGradientStops &stops);public slots: void pointsUpdated();signals: void gradientStopsChanged(const QGradientStops &stops);private: ShadeWidget *m_red_shade; ShadeWidget *m_green_shade; ShadeWidget *m_blue_shade; ShadeWidget *m_alpha_shade;};class GradientRenderer : public ArthurFrame{ Q_OBJECTpublic: GradientRenderer(QWidget *parent); void paint(QPainter *p); QSize sizeHint() const { return QSize(400, 400); } HoverPoints *hoverPoints() const { return m_hoverPoints; } void mousePressEvent(QMouseEvent *e);public slots: void setGradientStops(const QGradientStops &stops); void setPadSpread() { m_spread = QGradient::PadSpread; update(); } void setRepeatSpread() { m_spread = QGradient::RepeatSpread; update(); } void setReflectSpread() { m_spread = QGradient::ReflectSpread; update(); } void setLinearGradient() { m_gradientType = Qt::LinearGradientPattern; update(); } void setRadialGradient() { m_gradientType = Qt::RadialGradientPattern; update(); } void setConicalGradient() { m_gradientType = Qt::ConicalGradientPattern; update(); }private: QGradientStops m_stops; HoverPoints *m_hoverPoints; QGradient::Spread m_spread; Qt::BrushStyle m_gradientType;};class GradientWidget : public QWidget{ Q_OBJECTpublic: GradientWidget(QWidget *parent);public slots: void setDefault1() { setDefault(1); } void setDefault2() { setDefault(2); } void setDefault3() { setDefault(3); } void setDefault4() { setDefault(4); }private: void setDefault(int i); GradientRenderer *m_renderer; GradientEditor *m_editor; QRadioButton *m_linearButton; QRadioButton *m_radialButton; QRadioButton *m_conicalButton; QRadioButton *m_padSpreadButton; QRadioButton *m_reflectSpreadButton; QRadioButton *m_repeatSpreadButton;};#endif // GRADIENTS_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -