Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions | ![]() |
The QIconSet class provides a set of icons with different styles and sizes. More...
#include <qiconset.h>
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 *tb = new QToolButton( QIconSet( QPixmap("open.xpm") ), ... );
Using whichever pixmap(s) you specify as a base, QIconSet provides a set of six icons, each with a Size and a Mode:
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. For best results for calculated pixmaps, you should supply a 22 x 22 pixel pixmap.
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 no pixmap has been set or previously generated for the combination QIconSet will generate a pixmap based on the pixmap(s) it has been given, cache the generated pixmap for later use, and return it. The isGenerated() function returns TRUE if an icon was generated by QIconSet.
The Disabled appearance is computed using a "shadow" 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 22x22 (compatible with Qt 2.x), while the default large size is 32x32. Please note that these sizes only affect generated icons.
QIconSet provides a function, isGenerated(), that indicates whether an icon was set by the application programmer or computed by QIconSet itself.
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()) ); }
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.
See also QPixmap, QLabel, QToolButton, QPopupMenu, QMainWindow::usesBigPixmaps, GUI Design Handbook: Iconic Label, Microsoft Icon Gallery, Graphics Classes, Image Processing Classes and Implicitly and Explicitly Shared Classes.
This enum type describes the mode for which a pixmap is intended to be used. The currently defined modes are:
This enum type describes the size at which a pixmap is intended to be used. The currently defined sizes are:
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.
This enum describes the state for which a pixmap is intended to be used. The state can be:
See also setPixmap() and pixmap().
See also reset().
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().
You will never need to call this function; other QIconSet functions call it as necessary.
See also setIconSize().
This is very fast.
See also detach().
Returns a pixmap with size size, state state and a Mode which is Normal if enabled is TRUE, or Disabled if enabled is FALSE.
Returns the pixmap originally provided to the constructor or to reset(). This is the Normal pixmap of unspecified Size.
See also reset().
This is equivalent to assigning QIconSet(pm, size) to this icon set.
This function does nothing if pm is a null pixmap.
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().
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 pm is a null pixmap.
See also reset().
Sets this icon set to load the file called fileName as a pixmap and use it for size size, mode mode and state state. The icon set may also use this 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 file is part of the Qt toolkit. Copyright © 1995-2002 Trolltech. All Rights Reserved.
Copyright © 2002 Trolltech | Trademarks | Qt version 3.0.5
|