如何在Qt中为不同的按钮设置不同的图标?

时间:2016-05-12 04:46:57

标签: qt qpixmap qicon

我有很多想要设置图标的按钮。而且,每个按钮的图标都不相同。

我只为其中一个做这件事:

QString str=(qApp->applicationDirPath());
str.append("/pic/kb.png");
QPixmap pixmap(str);
QIcon ButtonIcon(pixmap);
ui->btnShowKB->setIcon(ButtonIcon);
ui->btnShowKB->setIconSize(pixmap.rect().size());

但我真的有很多按钮(btn1,btn2,btn3,....,btn9)。

如何为其他按钮设置其他图像(/pic/1.png,/pic/2.png,/pic/3.png, ....,/ pic / 9.png)? 我是否必须为每个人创建一个新的QPixmap,或者是否有更简单的解决方案?

2 个答案:

答案 0 :(得分:3)

首先,如果您正在使用设计器,那么请完全使用它,而不仅仅是添加小部件。您可以从那里向按钮添加图标。只需将资源文件添加到项目中,将图像加载到项目中,然后选择所需的按钮。或者,如果您不想使用资源文件,则可以从任何目录上传图像。

答案 1 :(得分:2)

您的方式,代码中唯一发生变化的事情显然是文件名和要设置图标的按钮。因此,您应该创建一个以QString和按钮作为参数的方法,并在需要时为您所需的按钮调用它。 (在下面的代码中,我使用QPushButton作为按钮,也许它对您不同,因此请相应更改

void yourClass::setButtonIcon(QString iconPath, QPushButton* button)
{
    qApp->applicationDirPath().append(iconPath);
    QPixmap pixmap(str);
    QIcon buttonIcon(pixmap);
    button->setIcon(ButtonIcon);
    button->setIconSize(pixmap.rect().size());
}