User Tools

Site Tools


qt:mainwindow-buildicon

This is an old revision of the document!


Something like this:

MainWindow::buildIcon
/**
 * Append a regularly defined set of different sized icon images to a QIcon.
 *
 * The following usage example assumes the resources ":myIcons/16x16/exit.png",
 * ":myIcons/24x24/exit.png", and ":myIcons/32x32/exit.png" are available and
 * that we want to bundle them together into exitIcon.
 * 
 * \code
 *   QList<int> sizes; sizes << 16 << 24 << 32;
 *   QIcon exitIcon;
 *   buildIcon(&exitIcon, ":myIcons/%size%/exit.png", sizes);
 * \endcode
 * 
 * Does NOT check whether the referenced resources actually exist.
 *
 * @return void
 */
void MainWindow::buildIcon(QIcon* const theIcon,           ///< Pointer to the icon that will be built/appened to.
                           QString const &iconRscTemplate, ///< A tag-based template string for the icon resource. Two tags are recognized in iconRscTemplate: \%size\% and \%dim\%. When the iconRscTemplate is expanded, the tag \%dim\% will be replaced by {iconSize} and \%size\% will be replaced by {iconSize}x{iconSize}, where {iconSize} is a string cast of an element in sizeList.
                           QList const &sizeList           ///< A list of single-dimension sizes to be added to the icon.
                          )
{
    foreach (const int iconSize in sizeList)
    {
        QString theResource = iconRscTemplate;
        theResource.replace(QString("%size%"), iconSize+"x"+iconSize);  // does this work?
        theResource.replace(QString("%dim%"), iconSize+"");             // does this work?
 
        theIcon->addFile(theResource, QSize(iconSize, iconSize))
    }
}
qt/mainwindow-buildicon.1305216158.txt.gz · Last modified: 2011/05/12 16:02 by mithat

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki