2

アイコンを設定したいボタンがたくさんあります。また、このアイコンは各ボタンで同じではありません。

私はそれらの1つだけのためにこれを行います:

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 を作成する必要がありますか、それとももっと簡単な解決策がありますか?

4

2 に答える 2

3

まず、デザイナを使用している場合は、ウィジェットの追加だけでなく、十分に使用してください。そこからボタンにアイコンを追加できます。プロジェクトにリソース ファイルを追加し、画像をロードして、必要なボタンを選択するだけです。または、リソース ファイルを使用したくない場合は、任意のディレクトリから画像をアップロードできます。

于 2016-05-12T05:57:12.007 に答える
2

あなたがやっている方法では、コードで変更するのは、明らかにファイルの名前とアイコンを設定するボタンだけです。そのため、QString とボタンをパラメーターとして受け取るメソッドを作成し、目的のボタンで必要なときにいつでも呼び出す必要があります。(以下のコードではQPushButton、ボタンとして a を使用していますが、場合によっては異なるので、それに応じて変更してください) .

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 に答える