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

📄 qpalette.cpp

📁 奇趣公司比较新的qt/emd版本
💻 CPP
📖 第 1 页 / 共 3 页
字号:
/******************************************************************************** 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.******************************************************************************/#include "qpalette.h"#include "qapplication.h"#include "qdatastream.h"#include "qvariant.h"static int qt_palette_count = 1;class QPalettePrivate {public:    QPalettePrivate() : ref(1), ser_no(qt_palette_count++), detach_no(0) { }    QAtomic ref;    QBrush br[QPalette::NColorGroups][QPalette::NColorRoles];    int ser_no;    int detach_no;};static QColor qt_mix_colors(QColor a, QColor b){    return QColor((a.red() + b.red()) / 2, (a.green() + b.green()) / 2,                  (a.blue() + b.blue()) / 2, (a.alpha() + b.alpha()) / 2);}#ifdef QT3_SUPPORT#ifndef QT_NO_DATASTREAMQDataStream &qt_stream_out_qcolorgroup(QDataStream &s, const QColorGroup &g){    if(s.version() == 1) {        // Qt 1.x        s << g.color(QPalette::Foreground) << g.color(QPalette::Background)          << g.color(QPalette::Light) << g.color(QPalette::Dark)          << g.color(QPalette::Mid) << g.color(QPalette::Text) << g.color(QPalette::Base);    } else {        int max = QPalette::NColorRoles;        if(s.version() <= 3) // Qt 2.x            max = 14;        for(int r = 0 ; r < max ; r++)            s << g.brush((QPalette::ColorRole)r);    }    return s;}QDataStream &qt_stream_in_qcolorgroup(QDataStream &s, QColorGroup &g){    if(s.version() == 1) {         // Qt 1.x        QColor fg, bg, light, dark, mid, text, base;        s >> fg >> bg >> light >> dark >> mid >> text >> base;        QPalette p(bg);        p.setColor(QPalette::Active, QPalette::Foreground, fg);        p.setColor(QPalette::Active, QPalette::Light, light);        p.setColor(QPalette::Active, QPalette::Dark, dark);        p.setColor(QPalette::Active, QPalette::Mid, mid);        p.setColor(QPalette::Active, QPalette::Text, text);        p.setColor(QPalette::Active, QPalette::Base, base);        g = p;        g.setCurrentColorGroup(QPalette::Active);    } else {        int max = QPalette::NColorRoles;        if (s.version() <= 3) // Qt 2.x            max = 14;        else if (s.version() <= 4) // Qt 3.x            max = 16;        QBrush tmp;        for(int r = 0 ; r < max; r++) {            s >> tmp;            g.setBrush((QPalette::ColorRole)r, tmp);        }    }    return s;}QDataStream &operator<<(QDataStream &s, const QColorGroup &g){    return qt_stream_out_qcolorgroup(s, g);}QDataStream &operator>>(QDataStream &s, QColorGroup &g){    return qt_stream_in_qcolorgroup(s, g);}#endif/*!    Constructs a palette with the specified \a active, \a disabled and    \a inactive color groups.*/QPalette::QPalette(const QColorGroup &active, const QColorGroup &disabled,                   const QColorGroup &inactive){    init();    setColorGroup(Active, active);    setColorGroup(Disabled, disabled);    setColorGroup(Inactive, inactive);}QColorGroup QPalette::createColorGroup(ColorGroup cr) const{    QColorGroup ret(*this);    ret.setCurrentColorGroup(cr);    return ret;}void QPalette::setColorGroup(ColorGroup cg, const QColorGroup &g){    setColorGroup(cg, g.brush(WindowText), g.brush(Button), g.brush(Light),                  g.brush(Dark), g.brush(Mid), g.brush(Text), g.brush(BrightText),                  g.brush(Base), g.brush(AlternateBase), g.brush(Window),                  g.brush(Midlight), g.brush(ButtonText), g.brush(Shadow),                  g.brush(Highlight), g.brush(HighlightedText), g.brush(Link),                  g.brush(LinkVisited));}#endif/*!   \fn const QColor &QPalette::color(ColorRole role) const   \overload    Returns the color that has been set for the given color \a role in    the current ColorGroup.    \sa brush() ColorRole *//*!    \fn const QBrush &QPalette::brush(ColorRole role) const    \overload    Returns the brush that has been set for the given color \a role in    the current ColorGroup.    \sa color() setBrush() ColorRole*//*!    \fn void QPalette::setColor(ColorRole role, const QColor &color)    \overload    Sets the color used for the given color \a role, in all color    groups, to the specified solid \a color.    \sa brush() setColor() ColorRole*//*!    \fn void QPalette::setBrush(ColorRole role, const QBrush &brush)    Sets the brush for the given color \a role to the specified \a    brush for all groups in the palette.    \sa brush() setColor() ColorRole*//*!    \fn const QBrush & QPalette::foreground() const    \obsolete    Use windowText() instead.*//*!    \fn const QBrush & QPalette::windowText() const    Returns the window text (general foreground) brush of the    current color group.    \sa ColorRole brush()*//*!    \fn const QBrush & QPalette::button() const    Returns the button brush of the current color group.    \sa ColorRole brush()*//*!    \fn const QBrush & QPalette::light() const    Returns the light brush of the current color group.    \sa ColorRole brush()*//*!    \fn const QBrush& QPalette::midlight() const    Returns the midlight brush of the current color group.    \sa ColorRole brush()*//*!    \fn const QBrush & QPalette::dark() const    Returns the dark brush of the current color group.    \sa ColorRole brush()*//*!    \fn const QBrush & QPalette::mid() const    Returns the mid brush of the current color group.    \sa ColorRole brush()*//*!    \fn const QBrush & QPalette::text() const    Returns the text foreground brush of the current color group.    \sa ColorRole brush()*//*!    \fn const QBrush & QPalette::brightText() const    Returns the bright text foreground brush of the current color group.    \sa ColorRole brush()*//*!    \fn const QBrush & QPalette::buttonText() const    Returns the button text foreground brush of the current color group.    \sa ColorRole brush()*//*!    \fn const QBrush & QPalette::base() const    Returns the base brush of the current color group.    \sa ColorRole brush()*//*!    \fn const QBrush & QPalette::alternateBase() const    Returns the alternate base brush of the current color group.    \sa ColorRole brush()*//*!    \fn const QBrush & QPalette::background() const    \obsolete    Use window() instead.*//*!    \fn const QBrush & QPalette::window() const    Returns the window (general background) brush of the current    color group.    \sa ColorRole brush()*//*!    \fn const QBrush & QPalette::shadow() const    Returns the shadow brush of the current color group.    \sa ColorRole brush()*//*!    \fn const QBrush & QPalette::highlight() const    Returns the highlight brush of the current color group.    \sa ColorRole brush()*//*!    \fn const QBrush & QPalette::highlightedText() const    Returns the highlighted text brush of the current color group.    \sa ColorRole brush()*//*!    \fn const QBrush & QPalette::link() const    Returns the unvisited link text brush of the current color group.    \sa ColorRole brush()*//*!    \fn const QBrush & QPalette::linkVisited() const    Returns the visited link text brush of the current color group.    \sa ColorRole brush()*//*!    \fn ColorGroup QPalette::currentColorGroup() const    Returns the palette's current color group.*//*!    \fn void QPalette::setCurrentColorGroup(ColorGroup cg)    Set the palette's current color group to \a cg.*//*!    \class QPalette qpalette.h    \brief The QPalette class contains color groups for each widget state.    \ingroup appearance    \ingroup shared    \ingroup multimedia    \mainclass    A palette consists of three color groups: \e Active, \e Disabled,    and \e Inactive. All widgets in Qt contain a palette and    use their palette to draw themselves. This makes the user    interface easily configurable and easier to keep consistent.    If you create a new widget we strongly recommend that you use the    colors in the palette rather than hard-coding specific colors.    The color groups:    \list    \i The Active group is used for the window that has keyboard focus.    \i The Inactive group is used for other windows.    \i The Disabled group is used for widgets (not windows) that are    disabled for some reason.    \endlist    Both active and inactive windows can contain disabled widgets.    (Disabled widgets are often called \e inaccessible or \e{grayed    out}.)    In most styles, Active and Inactive look the same.    Colors and brushes can be set for particular roles in any of a palette's    color groups with setColor() and setBrush().  A color group contains a    group of colors used by widgets for drawing themselves. We recommend that    widgets use color group roles from the palette such as "foreground" and    "base" rather than literal colors like "red" or "turquoise". The color    roles are enumerated and defined in the \l ColorRole documentation.				We strongly recommend that you use the default palette of the				current style (returned by QApplication::palette()) and				modify that as necessary. This is done by Qt's widgets when they				are drawn.    To modify a color group you call the functions    setColor() and setBrush(), depending on whether you want a pure    color or a pixmap pattern.    There are also corresponding color() and brush() getters, and a    commonly used convenience function to get the ColorRole for the current ColorGroup:    window(), windowText(), base(), etc.    You can copy a palette using the copy constructor and test to see    if two palettes are \e identical using isCopyOf().    QPalette is optimized by the use of \l{implicit sharing},    so it is very efficient to pass QPalette objects as arguments.    \sa QApplication::setPalette(), QWidget::setPalette(), QColor*//*!    \enum QPalette::ColorGroup    \value Disabled    \value Active    \value Inactive    \value Normal synonym for Active    \omitvalue All    \omitvalue NColorGroups    \omitvalue Current*//*!    \enum QPalette::ColorRole

⌨️ 快捷键说明

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