QIconSet(3qt)QIconSet(3qt)NAMEQIconSet - Set of icons with different styles and sizes
SYNOPSIS
#include <qiconset.h>
Public Members
enum Size { Automatic, Small, Large }
enum Mode { Normal, Disabled, Active }
enum State { On, Off }
QIconSet ()
QIconSet ( const QPixmap & pixmap, Size size = Automatic )
QIconSet ( const QPixmap & smallPix, const QPixmap & largePix )
QIconSet ( const QIconSet & other )
virtual ~QIconSet ()
void reset ( const QPixmap & pixmap, Size size )
virtual void setPixmap ( const QPixmap & pixmap, Size size, Mode mode =
Normal, State state = Off )
virtual void setPixmap ( const QString & fileName, Size size, Mode mode
= Normal, State state = Off )
QPixmap pixmap ( Size size, Mode mode, State state = Off ) const
QPixmap pixmap ( Size size, bool enabled, State state = Off ) const
(obsolete)
QPixmap pixmap () const
bool isGenerated ( Size size, Mode mode, State state = Off ) const
void clearGenerated ()
void installIconFactory ( QIconFactory * factory )
bool isNull () const
void detach ()
QIconSet & operator= ( const QIconSet & other )
Static Public Members
void setIconSize ( Size which, const QSize & size )
const QSize & iconSize ( Size which )
DESCRIPTION
The QIconSet class provides a set of icons with different styles and
sizes.
A QIconSet can generate smaller, larger, active, and disabled pixmaps
from the set of icons it is given. Such pixmaps are used by
QToolButton, QHeader, QPopupMenu, etc. to show an icon representing a
particular action.
The simplest use of QIconSet is to create one from a QPixmap and then
use it, allowing Qt to work out all the required icon styles and sizes.
For example:
QToolButton *but = new QToolButton( QIconSet( QPixmap("open.xpm") ), ... );
Using whichever pixmaps you specify as a base, QIconSet provides a set
of six icons, each with a Size and a Mode: Small Normal, Small
Disabled, Small Active, Large Normal, Large Disabled, and Large Active.
An additional set of six icons can be provided for widgets that have an
"On" or "Off" state, like checkable menu items or toggleable
toolbuttons. If you provide pixmaps for the "On" state, but not for the
"Off" state, the QIconSet will provide the "Off" pixmaps. You may
specify icons for both states in you wish.
You can set any of the icons using setPixmap().
When you retrieve a pixmap using pixmap(Size, Mode, State), QIconSet
will return the icon that has been set or previously generated for that
size, mode and state combination. If none is available, QIconSet will
ask the icon factory. If the icon factory cannot provide any (the
default), QIconSet generates a pixmap based on the pixmaps it has been
given and returns it.
The Disabled appearance is computed using an algorithm that produces
results very similar to those used in Microsoft Windows 95. The Active
appearance is identical to the Normal appearance unless you use
setPixmap() to set it to something special.
When scaling icons, QIconSet uses smooth scaling, which can partially
blend the color component of pixmaps. If the results look poor, the
best solution is to supply pixmaps in both large and small sizes.
You can use the static function setIconSize() to set the preferred size
of the generated large/small icons. The default small size is 22 x 22,
while the default large size is 32 x 32. These sizes only affect
generated icons.
The isGenerated() function returns TRUE if an icon was generated by
QIconSet or by a factory; clearGenerated() clears all cached pixmaps.
Making Classes that Use QIconSet
If you write your own widgets that have an option to set a small
pixmap, consider allowing a QIconSet to be set for that pixmap. The Qt
class QToolButton is an example of such a widget.
Provide a method to set a QIconSet, and when you draw the icon, choose
whichever icon is appropriate for the current state of your widget. For
example:
void MyWidget::drawIcon( QPainter* p, QPoint pos )
{
p->drawPixmap( pos, icons->pixmap(
QIconSet::Small,
isEnabled() ? QIconSet::Normal :
QIconSet::Disabled,
isEnabled() ? QIconSet::On :
QIconSet::Off));
}
You might also make use of the Active mode, perhaps making your widget
Active when the mouse is over the widget (see QWidget::enterEvent()),
while the mouse is pressed pending the release that will activate the
function, or when it is the currently selected item. If the widget can
be toggled, the "On" mode might be used to draw a different icon.
<center>
[Image Omitted]
</center>
See also QIconFactory, QPixmap, QMainWindow::usesBigPixmaps, GUI Design
Handbook: Iconic Label, Graphics Classes, Image Processing Classes, and
Implicitly and Explicitly Shared Classes.
Member Type Documentation
QIconSet::Mode
This enum type describes the mode for which a pixmap is intended to be
used. The currently defined modes are:
QIconSet::Normal - Display the pixmap when the user is not interacting
with the icon, but the functionality represented by the icon is
available.
QIconSet::Disabled - Display the pixmap when the functionality
represented by the icon is not available.
QIconSet::Active - Display the pixmap when the functionality
represented by the icon is available and the user is interacting with
the icon, for example, moving the mouse over it or clicking it.
QIconSet::Size
This enum type describes the size at which a pixmap is intended to be
used. The currently defined sizes are:
QIconSet::Automatic - The size of the pixmap is determined from its
pixel size. This is a useful default.
QIconSet::Small - The pixmap is the smaller of two.
QIconSet::Large - The pixmap is the larger of two.
If a Small pixmap is not set by QIconSet::setPixmap(), the Large pixmap
will be automatically scaled down to the size of a small pixmap to
generate the Small pixmap when required. Similarly, a Small pixmap will
be automatically scaled up to generate a Large pixmap. The preferred
sizes for large/small generated icons can be set using setIconSize().
See also setIconSize(), iconSize(), setPixmap(), pixmap(), and
QMainWindow::usesBigPixmaps.
QIconSet::State
This enum describes the state for which a pixmap is intended to be
used. The state can be:
QIconSet::Off - Display the pixmap when the widget is in an "off" state
QIconSet::On - Display the pixmap when the widget is in an "on" state
See also setPixmap() and pixmap().
MEMBER FUNCTION DOCUMENTATIONQIconSet::QIconSet ()
Constructs a null icon set.
See also setPixmap() and reset().
QIconSet::QIconSet ( const QPixmap & pixmap, Size size = Automatic )
Constructs an icon set for which the Normal pixmap is pixmap, which is
assumed to be of size size.
The default for size is Automatic, which means that QIconSet will
determine whether the pixmap is Small or Large from its pixel size.
Pixmaps less than the width of a small generated icon are considered to
be Small. You can use setIconSize() to set the preferred size of a
generated icon.
See also setIconSize() and reset().
QIconSet::QIconSet ( const QPixmap & smallPix, const QPixmap & largePix )
Creates an iconset which uses the pixmap smallPix for for displaying a
small icon, and the pixmap largePix for displaying a large icon.
QIconSet::QIconSet ( const QIconSet & other )
Constructs a copy of other. This is very fast.
QIconSet::~QIconSet () [virtual]
Destroys the icon set and frees any allocated resources.
void QIconSet::clearGenerated ()
Clears all cached pixmaps, including those obtained from an eventual
QIconFactory.
void QIconSet::detach ()
Detaches this icon set from others with which it may share data.
You will never need to call this function; other QIconSet functions
call it as necessary.
const QSize & QIconSet::iconSize ( Size which ) [static]
If which is Small, returns the preferred size of a small generated
icon; if which is Large, returns the preferred size of a large
generated icon.
See also setIconSize().
void QIconSet::installIconFactory ( QIconFactory * factory )
Installs factory as the icon factory for this iconset. The icon factory
is used to generates pixmaps not set by the user.
If no icon factory is installed, QIconFactory::defaultFactory() is
used.
bool QIconSet::isGenerated ( Size size, Mode mode, State state = Off ) const
Returns TRUE if the pixmap with size size, mode mode and state state is
generated from other pixmaps; otherwise returns FALSE.
A pixmap obtained from a QIconFactory is considered non-generated.
bool QIconSet::isNull () const
Returns TRUE if the icon set is empty; otherwise returns FALSE.
QIconSet & QIconSet::operator= ( const QIconSet & other )
Assigns other to this icon set and returns a reference to this icon
set.
See also detach().
QPixmap QIconSet::pixmap ( Size size, Mode mode, State state = Off ) const
Returns a pixmap with size size, mode mode and state state, generating
one if necessary. Generated pixmaps are cached.
QPixmap QIconSet::pixmap ( Size size, bool enabled, State state = Off ) const
This is an overloaded member function, provided for convenience. It
behaves essentially like the above function.
This function is obsolete. It is provided to keep old source working.
We strongly advise against using it in new code.
This is the same as pixmap(size, enabled, state).
QPixmap QIconSet::pixmap () const
This is an overloaded member function, provided for convenience. It
behaves essentially like the above function.
Returns the pixmap originally provided to the constructor or to
reset(). This is the Normal pixmap of unspecified Size.
See also reset().
void QIconSet::reset ( const QPixmap & pixmap, Size size )
Sets this icon set to use pixmap pixmap for the Normal pixmap, assuming
it to be of size size.
This is equivalent to assigning QIconSet(pixmap, size) to this icon
set.
This function does nothing if pixmap is a null pixmap.
void QIconSet::setIconSize ( Size which, const QSize & size ) [static]
Set the preferred size for all small or large icons that are generated
after this call. If which is Small, sets the preferred size of small
generated icons to size. Similarly, if which is Large, sets the
preferred size of large generated icons to size.
Note that cached icons will not be regenerated, so it is recommended
that you set the preferred icon sizes before generating any icon sets.
Also note that the preferred icon sizes will be ignored for icon sets
that have been created using both small and large pixmaps.
See also iconSize().
void QIconSet::setPixmap ( const QPixmap & pixmap, Size size, Mode mode =
Normal, State state = Off ) [virtual]
Sets this icon set to provide pixmap pixmap for size size, mode mode
and state state. The icon set may also use pixmap for generating other
pixmaps if they are not explicitly set.
The size can be one of Automatic, Large or Small. If Automatic is used,
QIconSet will determine if the pixmap is Small or Large from its pixel
size.
Pixmaps less than the width of a small generated icon are considered to
be Small. You can use setIconSize() to set the preferred size of a
generated icon.
This function does nothing if pixmap is a null pixmap.
See also reset().
void QIconSet::setPixmap ( const QString & fileName, Size size, Mode mode =
Normal, State state = Off ) [virtual]
This is an overloaded member function, provided for convenience. It
behaves essentially like the above function.
The pixmap is loaded from fileName when it becomes necessary.
SEE ALSO
http://doc.trolltech.com/qiconset.html
http://www.trolltech.com/faq/tech.html
COPYRIGHT
Copyright 1992-2007 Trolltech ASA, http://www.trolltech.com. See the
license file included in the distribution for a complete license
statement.
AUTHOR
Generated automatically from the source code.
BUGS
If you find a bug in Qt, please report it as described in
http://doc.trolltech.com/bughowto.html. Good bug reports help us to
help you. Thank you.
The definitive Qt documentation is provided in HTML format; it is
located at $QTDIR/doc/html and can be read using Qt Assistant or with a
web browser. This man page is provided as a convenience for those users
who prefer man pages, although this format is not officially supported
by Trolltech.
If you find errors in this manual page, please report them to qt-
bugs@trolltech.com. Please include the name of the manual page
(qiconset.3qt) and the Qt version (3.3.8).
Trolltech AS 2 February 2007 QIconSet(3qt)