2010-11-29 4 views
17

しばらく検索した後、グループボックスで目に見える境界線を設定する方法は、StyleSheetプロパティを使用することです。私は次のように付け加えました:QGroupBox border

border: 2px solid gray; 

しかし、いくつかの問題があります。

1)グループボックス内のすべてがこの設定を継承します。

2)境界線には、タイトルの近くに小さな穴や欠けがあります。 alt text

誰もがこれを適切に行う方法を知っている:ここで

は私が話して何の絵ですか?

QGroupBox 
{ 
    border: 2px solid gray; 
} 

ギャップについては、あなたはおそらく、いくつかのパディングを設定することにより、これを修正することができます

おかげで、

デビッド

+1

私はこの1つでこの質問に対する正しい答えを見つけました:ここに掲載の回答のhttp://stackoverflow.com/questions/14582591/border-of-qgroupbox どれも素敵働いていません私のために。 – gluk47

答えて

31

最初の問題は簡単ですコントロールにスタイルシートを追加すると、そのスタイルはすべての子ウィジェットに自動的に伝播されます。ただし、スタイルシートの使用を制限するには、いくつかの方法があります。スタイルシートに適用するコントロールのタイプを指定することができます。例:

QGroupBox { 
    border: 2px solid gray; 
    border-radius: 3px; 
} 

このスタイルシートは、グループボックスにのみ設定されます。しかし、この中に2番目のグループボックスを入れると、スタイルもこのグループに伝播します。どちらが良いか悪いかもしれません。

別の方法は、スタイルを適用するウィジェットのobjectNameです。例:

これは、オブジェクト名がMyGroupBoxのグループボックスにのみ適用されます。

タイトルはあなたの国境の上に描かれているので、スペースは起こっています。スタイルシートにセクションを追加して、グループボックスのタイトルを変更することもできます。これには、その背景を透明に設定し、タイトルをあなたの心のコンテンツに移動することが含まれます。

例:これは、隙間のないボーダー内のグループボックスの左上隅にタイトルを設定します。

QGroupBox::title { 
    background-color: transparent; 
    subcontrol-position: top left; /* position at the top left*/ 
    padding:2 13px; 
} 
+0

優秀、ありがとう! –

0

は、次のようなグループボックスのスタイルのためのセレクタを指定します。 Check the docs here

1

これはQt 5.1で役に立ちました。

qApp->setStyleSheet("QGroupBox { border: 1px solid gray;}"); 

Elimeléc