📄 qpalette.cpp
字号:
if(group1 == Current) { group1 = (ColorGroup)current_group; } else { qWarning("QPalette::brush: Unknown ColorGroup(1): %d", (int)group1); group1 = Active; } } if(group2 >= (int)NColorGroups) { if(group2 == Current) { group2 = (ColorGroup)current_group; } else { qWarning("QPalette::brush: Unknown ColorGroup(2): %d", (int)group2); group2 = Active; } } if(group1 == group2) return true; for(int role = 0; role < (int)NColorRoles; role++) { if(d->br[group1][role] != d->br[group2][role]) return false; } return true;}/*! \obsolete Returns a number that identifies the contents of this QPalette object. Distinct QPalette objects can only have the same serial number if they refer to the same contents (but they don't have to). Also, the serial number of a QPalette may change during the lifetime of the object. Use cacheKey() instead. \warning The serial number doesn't necessarily change when the palette is altered. This means that it may be dangerous to use it as a cache key. \sa operator==()*/int QPalette::serialNumber() const{ return d->ser_no;}/*! Returns a number that identifies the contents of this QPalette object. Distinct QPalette objects can have the same key if they refer to the same contents. The cacheKey() will change when the palette is altered.*/qint64 QPalette::cacheKey() const{ return (((qint64) d->ser_no) << 32) | ((qint64) (d->detach_no));}/*! Returns a new QPalette that has attributes copied from \a other.*/QPalette QPalette::resolve(const QPalette &other) const{ if (*this == other && resolve_mask == other.resolve_mask || resolve_mask == 0) { QPalette o = other; o.resolve_mask = resolve_mask; return o; } QPalette palette(*this); palette.detach(); for(int role = 0; role < (int)NColorRoles; role++) if (!(resolve_mask & (1<<role))) for(int grp = 0; grp < (int)NColorGroups; grp++) palette.d->br[grp][role] = other.d->br[grp][role]; return palette;}/*! \fn uint QPalette::resolve() const \internal*//*! \fn void QPalette::resolve(uint mask) \internal*//***************************************************************************** QPalette stream functions *****************************************************************************/#ifndef QT_NO_DATASTREAMstatic const int NumOldRoles = 7;static const int oldRoles[7] = { QPalette::Foreground, QPalette::Background, QPalette::Light, QPalette::Dark, QPalette::Mid, QPalette::Text, QPalette::Base };/*! \relates QPalette Writes the palette, \a p to the stream \a s and returns a reference to the stream. \sa \link datastreamformat.html Format of the QDataStream operators \endlink*/QDataStream &operator<<(QDataStream &s, const QPalette &p){ for (int grp = 0; grp < (int)QPalette::NColorGroups; grp++) { if (s.version() == 1) { // Qt 1.x for (int i = 0; i < NumOldRoles; ++i) s << p.d->br[grp][oldRoles[i]].color(); } else { int max = QPalette::NColorRoles; if (s.version() <= 3) // Qt 2.x max = 14; for (int r = 0; r < max; r++) s << p.d->br[grp][r]; } } return s;}static void readV1ColorGroup(QDataStream &s, QPalette &pal, QPalette::ColorGroup grp){ for (int i = 0; i < NumOldRoles; ++i) { QColor col; s >> col; pal.setColor(grp, (QPalette::ColorRole)oldRoles[i], col); }}/*! \relates QPalette Reads a palette from the stream, \a s into the palette \a p, and returns a reference to the stream. \sa \link datastreamformat.html Format of the QDataStream operators \endlink*/QDataStream &operator>>(QDataStream &s, QPalette &p){ if(s.version() == 1) { p = QPalette(); readV1ColorGroup(s, p, QPalette::Active); readV1ColorGroup(s, p, QPalette::Disabled); readV1ColorGroup(s, p, QPalette::Inactive); } else { int max = QPalette::NColorRoles; if (s.version() <= 3) { // Qt 2.x p = QPalette(); max = 14; } QBrush tmp; for(int grp = 0; grp < (int)QPalette::NColorGroups; ++grp) { for(int role = 0; role < max; ++role) { s >> tmp; p.setBrush((QPalette::ColorGroup)grp, (QPalette::ColorRole)role, tmp); } } } return s;}#endif //QT_NO_DATASTREAM/*! Returns true if this palette and \a p are copies of each other, i.e. one of them was created as a copy of the other and neither was subsequently modified; otherwise returns false. This is much stricter than equality. \sa operator=() operator==()*/bool QPalette::isCopyOf(const QPalette &p) const{ return d == p.d;}/*! Sets a the group at \a cg. You can pass either brushes, pixmaps or plain colors for \a windowText, \a button, \a light, \a dark, \a mid, \a text, \a bright_text, \a base and \a window. \sa QBrush*/void QPalette::setColorGroup(ColorGroup cg, const QBrush &windowText, const QBrush &button, const QBrush &light, const QBrush &dark, const QBrush &mid, const QBrush &text, const QBrush &bright_text, const QBrush &base, const QBrush &window){ QBrush alt_base = QBrush(qt_mix_colors(base.color(), button.color())); QBrush mid_light = QBrush(qt_mix_colors(button.color(), light.color())); setColorGroup(cg, windowText, button, light, dark, mid, text, bright_text, base, alt_base, window, mid_light, text, QBrush(Qt::black), QBrush(Qt::darkBlue), QBrush(Qt::white), QBrush(Qt::blue), QBrush(Qt::magenta)); resolve_mask &= ~(1 << Highlight); resolve_mask &= ~(1 << HighlightedText); resolve_mask &= ~(1 << LinkVisited); resolve_mask &= ~(1 << Link);}/*!\internal*/voidQPalette::setColorGroup(ColorGroup cg, const QBrush &foreground, const QBrush &button, const QBrush &light, const QBrush &dark, const QBrush &mid, const QBrush &text, const QBrush &bright_text, const QBrush &base, const QBrush &alternate_base, const QBrush &background, const QBrush &midlight, const QBrush &button_text, const QBrush &shadow, const QBrush &highlight, const QBrush &highlighted_text, const QBrush &link, const QBrush &link_visited){ detach(); setBrush(cg, WindowText, foreground); setBrush(cg, Button, button); setBrush(cg, Light, light); setBrush(cg, Dark, dark); setBrush(cg, Mid, mid); setBrush(cg, Text, text); setBrush(cg, BrightText, bright_text); setBrush(cg, Base, base); setBrush(cg, AlternateBase, alternate_base); setBrush(cg, Window, background); setBrush(cg, Midlight, midlight); setBrush(cg, ButtonText, button_text); setBrush(cg, Shadow, shadow); setBrush(cg, Highlight, highlight); setBrush(cg, HighlightedText, highlighted_text); setBrush(cg, Link, link); setBrush(cg, LinkVisited, link_visited);}/*! \fn QPalette QPalette::copy() const Use simple assignment instead.*//*! \fn QColorGroup QPalette::normal() const Use createColorGroup(Active) instead.*//*! \fn void QPalette::setNormal(const QColorGroup &colorGroup) Use setColorGroup(Active, colorGroup) instead.*//*! \fn QColorGroup QPalette::active() const*//*! \fn QColorGroup QPalette::disabled() const*//*! \fn QColorGroup QPalette::inactive() const*//*! \fn void QPalette::setActive(const QColorGroup &colorGroup) Use setColorGroup(Active, colorGroup) instead.*//*! \fn void QPalette::setDisabled(const QColorGroup &colorGroup) Use setColorGroup(Disabled, colorGroup) instead.*//*! \fn void QPalette::setInactive(const QColorGroup &colorGroup) Use setColorGroup(Inactive, colorGroup) instead.*//*! \class QColorGroup \brief The QColorGroup class contains color groups for each widget state. \compat*//*! \fn QColorGroup::QColorGroup() Use QPalette() instead.*//*! \fn QColorGroup::QColorGroup(const QBrush &foreground, const QBrush &button, \ const QBrush &light, const QBrush &dark, const QBrush &mid, \ const QBrush &text, const QBrush &bright_text, const QBrush &base, const QBrush &background) Use QPalette(\a foreground, \a button, \a light, \a dark, \a mid, \a text, \a bright_text, \a base, \a background) instead.*//*! \fn QColorGroup::QColorGroup(const QColor &foreground, const QColor &background, \ const QColor &light, const QColor &dark, const QColor &mid, \ const QColor &text, const QColor &base) Use QColorGroup(\a foreground, \a background, \a light, \a dark, \a mid, \a text, \a base) instead.*//*! \fn QColorGroup::QColorGroup(const QColorGroup &other) Use QPalette(\a other) instead.*//*! \fn QColorGroup::QColorGroup(const QPalette &pal) Use QPalette(\a pal) instead.*//*! \fn const QColor &QColorGroup::foreground() const Use QPalette::windowText().color() instead.*//*! \fn const QColor &QColorGroup::button() const Use QPalette::button().color() instead.*//*! \fn const QColor &QColorGroup::light() const Use QPalette::light().color() instead.*//*! \fn const QColor &QColorGroup::dark() const Use QPalette::dark().color() instead.*//*! \fn const QColor &QColorGroup::mid() const Use QPalette::mid().color() instead.*//*! \fn const QColor &QColorGroup::text() const Use QPalette::text().color() instead.*//*! \fn const QColor &QColorGroup::base() const Use QPalette::base().color() instead.*//*! \fn const QColor &QColorGroup::background() const Use QPalette::window().color() instead.*//*! \fn const QColor &QColorGroup::midlight() const Use QPalette::midlight().color() instead.*//*! \fn const QColor &QColorGroup::brightText() const Use QPalette::brightText().color() instead.*//*! \fn const QColor &QColorGroup::buttonText() const Use QPalette::buttonText().color() instead.*//*! \fn const QColor &QColorGroup::shadow() const Use QPalette::shadow().color() instead.*//*! \fn const QColor &QColorGroup::highlight() const Use QPalette::highlight().color() instead.*//*! \fn const QColor &QColorGroup::highlightedText() const Use QPalette::highlightedText().color() instead.*//*! \fn const QColor &QColorGroup::link() const Use QPalette::link().color() instead.*//*! \fn const QColor &QColorGroup::linkVisited() const Use QPalette::linkVisited().color() instead.*//*! \fn QDataStream &operator<<(QDataStream &ds, const QColorGroup &colorGroup) \relates QColorGroup \compat*//*! \fn QDataStream &operator>>(QDataStream &ds, QColorGroup &colorGroup) \relates QColorGroup \compat*//*! \fn bool QColorGroup::operator==(const QColorGroup &other) const Returns true if this color group is equal to \a other; otherwise returns false.*//*! \fn bool QColorGroup::operator!=(const QColorGroup &other) const Returns true if this color group is not equal to \a other; otherwise returns false.*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -