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

📄 qicon.cpp

📁 qt-x11-opensource-src-4.1.4.tar.gz源码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
  \sa {fowler}{GUI Design Handbook: Iconic Label}*//*!  Constructs a null icon.*/QIcon::QIcon()    : d(0){}/*!  Constructs an icon from a \a pixmap. */QIcon::QIcon(const QPixmap &pixmap)    :d(0){    addPixmap(pixmap);}/*!  Constructs a copy of \a other. This is very fast.*/QIcon::QIcon(const QIcon &other)    :d(other.d){    if (d)        d->ref.ref();}/*!    Constructs an icon from the file with the given \a fileName. The    file will be loaded on demand.    If \a fileName contains a relative path (e.g. the filename only)    the relevant file must be found relative to the runtime working    directory.    The file name can be either refer to an actual file on disk or to    one of the application's embedded resources.  See the    \l{resources.html}{Resource System} overview for details on how to    embed images and other resource files in the application's    executable.    Use the QImageReader::supportedImageFormats() and    QImageWriter::supportedImageFormats() functions to retrieve a    complete list of the supported file formats.*/QIcon::QIcon(const QString &fileName)    : d(0){    QFileInfo info(fileName);    QString suffix = info.suffix();#ifndef QT_NO_LIBRARY    if (!suffix.isEmpty())        if (QIconEngineFactoryInterface *factory = qobject_cast<QIconEngineFactoryInterface*>(loader()->instance(suffix)))            if (QIconEngine *engine = factory->create(fileName)) {                d = new QIconPrivate;                d->engine = engine;                return;            }#endif    addFile(fileName);}/*!    Creates an icon with a specific icon \a engine. The icon takes    ownership of the engine.*/QIcon::QIcon(QIconEngine *engine)    :d(new QIconPrivate){    d->engine = engine;}/*!    Destroys the icon.*/QIcon::~QIcon(){    if (d && !d->ref.deref())        delete d;}/*!    Assigns the \a other icon to this icon and returns a reference to    this icon.*/QIcon &QIcon::operator=(const QIcon &other){    QIconPrivate *x = other.d;    if (x)        x->ref.ref();    x = qAtomicSetPtr(&d, x);    if (x && !x->ref.deref())        delete x;    return *this;}/*!   Returns the icon as a QVariant.*/QIcon::operator QVariant() const{    return QVariant(QVariant::Icon, this);}/*!    Returns a number that uniquely identifies the contents of this    QIcon object. This means that multiple QIcon objects can have    the same serial number as long as they refer to the same contents.    A null icon always has a serial number of 0.    \sa QPixmap::serialNumber()*/int QIcon::serialNumber() const{    return d ? d->serialNum : 0;}/*!  Returns a pixmap with the requested \a size, \a mode, and \a  state, generating one if necessary. The pixmap might be smaller than  requested, but never larger.  \sa actualSize(), paint()*/QPixmap QIcon::pixmap(const QSize &size, Mode mode, State state) const{    if (!d)        return QPixmap();    return d->engine->pixmap(size, mode, state);}/*!    \fn QPixmap QIcon::pixmap(int w, int h, Mode mode = Normal, State state = Off) const    \overload    Returns a pixmap of size QSize(\a w, \a h).*//*!    \fn QPixmap QIcon::pixmap(int extent, Mode mode = Normal, State state = Off) const    \overload    Returns a pixmap of size QSize(\a extent, \a extent).*//*!  Returns the actual size of the icon for the requested \a size, \a  mode, and \a state. The result might be smaller than requested, but  never larger.  \sa pixmap(), paint()*/QSize QIcon::actualSize(const QSize &size, Mode mode, State state) const{    if (!d)        return QSize();    return d->engine->actualSize(size, mode, state);}/*!    Uses the \a painter to paint the icon with specified \a alignment,    required \a mode, and \a state into the rectangle \a rect.    \sa actualSize(), pixmap()*/void QIcon::paint(QPainter *painter, const QRect &rect, Qt::Alignment alignment, Mode mode, State state) const{    if (!d || !painter)        return;    QRect alignedRect = QStyle::alignedRect(painter->layoutDirection(), alignment, d->engine->actualSize(rect.size(), mode, state), rect);    d->engine->paint(painter, alignedRect, mode, state);}/*!    \fn void QIcon::paint(QPainter *painter, int x, int y, int w, int h, Qt::Alignment alignment,                          Mode mode, State state) const    \overload    Paints the icon into the rectangle QRect(\a x, \a y, \a w, \a h).*//*!    Returns true if the icon is empty; otherwise returns false.    An icon is empty if it has neither a pixmap nor a filename.    Note: Even a non-null icon might not be able to create valid    pixmaps, eg. if the file does not exist or cannot be read.*/bool QIcon::isNull() const{    return !d;}/*!\internal */bool QIcon::isDetached() const{    return !d || d->ref == 1;}/*!    Adds \a pixmap to the icon, as a specialization for \a mode and    \a state.    Custom icon engines are free to ignore additionally added    pixmaps.    \sa addFile()*/void QIcon::addPixmap(const QPixmap &pixmap, Mode mode, State state){    if (pixmap.isNull())        return;    if (!d) {        d = new QIconPrivate;        d->engine = new QPixmapIconEngine;    }    d->engine->addPixmap(pixmap, mode, state);}/*!  Adds a pixmap from the file with the given \a fileName to the     icon, as a specialization for \a size, \a mode and \a state. The     file will be loaded on demand. Note: custom icon engines are free     to ignore additionally added pixmaps.     If \a fileName contains a relative path (e.g. the filename only)     the relevant file must be found relative to the runtime working     directory.    The file name can be either refer to an actual file on disk or to    one of the application's embedded resources. See the    \l{resources.html}{Resource System} overview for details on how to    embed images and other resource files in the application's    executable.    Use the QImageReader::supportedImageFormats() and    QImageWriter::supportedImageFormats() functions to retrieve a    complete list of the supported file formats.    \sa addPixmap() */void QIcon::addFile(const QString &fileName, const QSize &size, Mode mode, State state){    if (fileName.isEmpty())        return;    if (!d) {        d = new QIconPrivate;        d->engine = new QPixmapIconEngine;    }    d->engine->addFile(fileName, size, mode, state);}#ifdef QT3_SUPPORTstatic int widths[2] = { 22, 32 };static int heights[2] = { 22, 32 };static QSize pixmapSize(QIcon::Size which) {    int i = 0;    if (which == QIcon::Large)        i = 1;    return QSize(widths[i], heights[i]);}/*!    \enum QIcon::Size    \compat    \value Small  Use QStyle::pixelMetric(QStyle::PM_SmallIconSize) instead.    \value Large  Use QStyle::pixelMetric(QStyle::PM_LargeIconSize) instead.    \value Automatic  N/A.*//*!    Use pixmap(QSize(...), \a mode, \a state), where the first    argument is an appropriate QSize instead of a \l Size value.    \sa pixmapSize()*/QPixmap QIcon::pixmap(Size size, Mode mode, State state) const{ return pixmap(::pixmapSize(size), mode, state); }/*!    Use pixmap(QSize(...), mode, \a state), where the first argument    is an appropriate QSize instead of a \l Size value, and the    second argument is QIcon::Normal or QIcon::Disabled, depending on    the value of \a enabled.    \sa pixmapSize()*/QPixmap QIcon::pixmap(Size size, bool enabled, State state) const{ return pixmap(::pixmapSize(size), enabled ? Normal : Disabled, state); }/*!    Use one of the other pixmap() overloads.*/QPixmap QIcon::pixmap() const{ return pixmap(::pixmapSize(Small), Normal, Off); }/*!    The pixmap() function now takes a QSize instead of a QIcon::Size,    so there is no need for this function in new code.*/void QIcon::setPixmapSize(Size which, const QSize &size){    int i = 0;    if (which == Large)        i = 1;    widths[i] = size.width();    heights[i] = size.height();}/*!    Use QStyle::pixelMetric() with QStyle::PM_SmallIconSize or    QStyle::PM_LargeIconSize as the first argument, depending on \a    which.*/QSize QIcon::pixmapSize(Size which){    return ::pixmapSize(which);}/*!    \fn void QIcon::reset(const QPixmap &pixmap, Size size)    Use the constructor that takes a QPixmap and operator=().*//*!    \fn void QIcon::setPixmap(const QPixmap &pixmap, Size size, Mode mode, State state)    Use addPixmap(\a pixmap, \a mode, \a state) instead. The \a size    parameter is ignored.*//*!    \fn void QIcon::setPixmap(const QString &fileName, Size size, Mode mode, State state)    Use addFile(\a fileName, \a mode, \a state) instead. The \a size    parameter is ignored.*/#endif // QT3_SUPPORT

⌨️ 快捷键说明

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