2

我有很多按钮要为其设置图标。而且,每个按钮的这个图标都不一样。

我只为其中一个这样做:

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 创建一个新的 QPixmap,还是有更简单的解决方案?

4

2 回答 2

3

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

于 2016-05-12T05:57:12.007 回答
2

你这样做的方式,你的代码中唯一改变的事情显然是文件的名称和你想要设置图标的按钮。因此,您应该创建一个将 QString 和一个按钮作为参数的方法,并在需要时调用它以获得所需的按钮。(在下面的代码中,我使用 aQPushButton作为按钮,也许它对你来说是不同的,所以相应地改变它)

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());
}
于 2016-05-12T07:08:24.410 回答