2017-02-02 34 views
1

私は、単純な10x10のブラックボックスを作成し、以下のようにQToolButtonにこれを追加しました:QToolButtonにアイコンを中央に配置する方法は?

QIcon minIcon; 
minIcon.addFile("c:/tmp/black10x10.png"); 
minButton = new QToolButton; 
minButton->setIcon(minIcon); 

しかし、それが画面に表示されますが、左シフト(便宜上拡大画像):

a reasonably misaligned icon

一部Gimpでは、左の灰色の領域が56ピクセル、右の灰色の領域が68であることがわかりました。この位置ずれは、ズームがなくても非常に目立つようになりました。だから、どのように私はこのアイコンを中心に置くのですか?

P.S.テキストなしでQPushButtonを使用して試しました。同じ効果。

+0

おそらくラベルのスペースを節約しています。あなたは負の左側のマージンを試しましたか? –

+0

25x25(ish)四角形で10x10イメージを中央に配置しようとしているように見えます。その場合には、常に半ピクセルのジッタが生じることになります。 –

+0

@Nicolas Holthaus 'minButton-> setContentsMargins()'は、私が使用するパラメータに関係なく、何の効果もないようです。さらに、すべてのプラットフォームとバージョンでテストしなければならないことはハードコーディングされます。 – sigil

答えて

0

それは今、少し遅れて、おそらくだが、私は

case CT_ToolButton: 
     if (rule.hasBox() || !rule.hasNativeBorder() || !rule.baseStyleCanDraw()) 
      sz += QSize(3, 3); // ### broken QToolButton 

を同じ問題に出くわしとQTS qstylesheet.cppに次のコードスニペットを見つけました。これは、サイズの奇数であるためにあなたも、サイズのアイコンを増加させると、そのために中央にない。私はなぜ3が追加されたのか分からないが、コメントはそれが何かの修正だと示唆している。 残念ながら、これは問題を解決しない。しかし、それは誰かが "すべてのあなたのアイコンが奇妙なサイズにする"より良い解決策を見つけるのを助けるかもしれません。

関連する問題