2016-05-12 10 views
2

アイコンを設定したいボタンがたくさんあります。さらに、このアイコンは各ボタンで同じではありません。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を作成する必要がありますか、それとももっと簡単なソリューションがありますか?

答えて

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()); 
} 
+0

はい、私はあなたが言ったようにしました。ありがとう。できます。 – MHM

3

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

+0

ありがとうございました。私がそれを理解しているという事例を教えてください。私は新しいです.sorry – MHM

+1

Qt Creatorでデザイナーに移動し、必要なボタンを選択してください。次に、右側のデフォルトで、オブジェクトのプロパティ領域を見つけます。 'QPushButton'エリアと** icon **プロパティを見つけます。ここであなたのアイコンを(リソースファイルを使用している場合は)追加または選択できます。 – someoneinthebox

関連する問題