Qt中如何给不同的按钮设置不同的图标?
How to set different icons to different buttons in Qt?
我有很多按钮想要设置图标。而且,每个按钮的图标都不一样。
我这样做只是为了其中之一:
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,或者是否有更简单的解决方案?
首先,如果您使用的是设计器,请充分利用它,而不仅仅是添加小部件。您可以从那里向按钮添加图标。只需将资源文件添加到您的项目,将图像加载到其中,然后选择所需的按钮。或者,如果您不想使用资源文件,您可以从任何目录上传图片。
按照您的操作方式,代码中唯一需要更改的显然是文件名和您要为其设置图标的按钮。因此,您应该创建一个将 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());
}
我有很多按钮想要设置图标。而且,每个按钮的图标都不一样。
我这样做只是为了其中之一:
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,或者是否有更简单的解决方案?
首先,如果您使用的是设计器,请充分利用它,而不仅仅是添加小部件。您可以从那里向按钮添加图标。只需将资源文件添加到您的项目,将图像加载到其中,然后选择所需的按钮。或者,如果您不想使用资源文件,您可以从任何目录上传图片。
按照您的操作方式,代码中唯一需要更改的显然是文件名和您要为其设置图标的按钮。因此,您应该创建一个将 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());
}