2009-09-13 41 views
18

アイコンを使ってQPushButtonを作成すると、デフォルトでアイコンの右にテキストが表示されます。アイコンの下にテキストを表示する方法はありますか?あなたがすることができるしている場合はQt QPushbuttonアイコン上のアイコン

+1

@Lundin問題ありません。それはポストを改善する試みだった。私はクラス名の強調が良い考えだと思います。また、私はポストの中で最も重要な言葉を選び、それを簡単に見つけました。 – fat

+0

@fatクラス名やその他の明白なコードを整形するのは問題ありませんが、ランダムな言葉に重点を置く必要はありません。 – Lundin

答えて

25

が、一番簡単な方法は、代わりに使用QToolButton次のとおりです。

QToolButton* button = new QToolButton(this); 
button->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); 
button->setIcon(myIcon); 
button->setText("Sample text"); 

それはあなたがあなた自身のボタンウィジェットを作成することを検討可能性がオプションでない場合は、おそらくのQPushButton由来またはQAbstractButton。この場合、おそらく(自分で試したことはありませんが)paintEvent()を再実装するための努力のほとんどを集中したいと思うでしょう。

は、[編集:おそらくこれ以上の方法簡単です選択肢のコメントを読む]

+0

実際には、必要に応じてQPushButtonにUIを追加することができます。自動サイジングは手間がかかりますが、アイコンやテキストラベルがどこにあるかを完全に制御できます。 –

+2

書式設定のためのサブクラス化は、通常は努力する価値がありません。スタイルを適用するだけでたくさんのことができます。また、スタイルに関する文書はより良いものになるかもしれませんが、通常は期待通りにうまく動作します。 –

+0

これはまさに私がやろうとしていたものでした。ありがとう! – DHamrick

4

利用のQt Creatorを、右側下部ペインに、あなたがその選択ToolButtonTextUnderIconで、オプション「textFormat」を表示されます。

+2

私のqtcreatorでは、 "toolButtonStyle"と呼ばれています。 –

+0

QToolButtonの場合、OPはQPushButtonについて質問します –

7
QPushButton { 
    padding: -25px 0 10px 0; 
    border: 1px solid black; 
    border-radius: 2px; 
    background-position: center bottom; 
    background-repeat: no-repeat; 
    background-origin: content; 
    background-image: url(":/new/resource/accept.png"); 
} 
QPushButton:disabled { 
    background-image: url(":/new/resource/accept_b.png"); 
}