2017-09-09 10 views
0

このコード:QCheckBoxのインジケータのサイズを設定するにはどうすればよいですか?

QCheckBox* selection = new QCheckBox(backgroundEditor); 
selection->setGeometry(
      0    , //Left 
      0    , //Top 
      buttonHeight , //Width 
      buttonHeight  //Height 
      ); 
selection->setStyleSheet(QString(
         "background-color: white;" 
         "   color: black;" 
         "QCheckBox::indicator " 
         "{" 
         "  width: %1px;" 
         " height: %1px;" 
         "}" 
        ).arg(buttonHeight)); 

が生成する:

enter image description here

白い領域が正しいジオメトリを持っていますが、私は、インジケータボックス(ひいてはクリックターゲットは)それを埋めるためにしたいです。それ、どうやったら出来るの?


実験のビットは、色の指定がサイズを消去することを示しています。それを削除するとサイズが正しくなりますが、もちろん色は間違っています。どのように私は両方を持つことができますか?

答えて

0

ありがとうございました@aghilpro本当に問題を含むように編集されていないので、残念ながら私は彼の答えを受け入れることができません。 - 彼らはまさに私のために大丈夫だったオブジェクトのすべての部分に適用される


前に「緩い」の色が常に働いているので、私はこのコードを使用していました:だから、ここで何が起こったのです(でも、私はそれをupvoteでした)やっていた:あなたが見ることができるように

QCheckBox* selection = new QCheckBox(backgroundEditor); 
selection->setStyleSheet(QString(
         "background-color: white;" 
         "   color: black;" 
         "QCheckBox::indicator " 
         "{" 
         "  width: %1px;" 
         " height: %1px;" 
         "}" 
        ).arg(buttonHeight)); 

は、私はすでに働いていたものに、私のGoogle検索結果を追加...とグローバル指定子はそれを無効にするのでさらには絶対に何もしませんでした。基本的には、色以外のすべてのデフォルトを指定したグローバルスタイルを作成し、indicatorのローカルスタイルをオーバーライドしました。代わりに、私はこれを行うために必要な:基本的に

QCheckBox* selection = new QCheckBox(backgroundEditor); 
selection->setStyleSheet(QString(
         "QCheckBox" 
         "{" 
         " background-color: white;" 
         "    color: black;" 
         "}" 
         "QCheckBox::indicator" 
         "{" 
         "  width: %1px;" 
         " height: %1px;" 
         "}" 
        ).arg(buttonHeight)); 

を、彼らはまったくグローバルスタイルがありませんように適用することになっているものに色をローカルにします。


誰かが実際に何が起こっているかのように優れた洞察力を持っている場合、私はので、私はこの答えを修正したり、独自のより良い答えを書くことができお知らせください。

1

これを試してみてください:

ui->checkBox->setStyleSheet("QCheckBox::indicator {width:10px;height: 10px;}"); 

をあなたがこのような状態ごとに手動でアイコンを設定する必要があります。

QCheckBox::indicator:checked 
{ 
    image: url(../Checkbox_checked_normal.png); 
} 
QCheckBox::indicator:unchecked 
{ 
    image: url(../Checkbox_unchecked_normal.png); 
} 

QCheckBox::indicator:checked:hover 
{ 
    image: url(../Checkbox_checked_hovered.png); 
} 
QCheckBox::indicator:unchecked:hover 
{ 
    image: url(../Checkbox_unchecked_hovered.png); 
} 
QCheckBox::indicator:checked:pressed 
{ 
    image: url(../Checkbox_checked_pressed.png); 
} 
QCheckBox::indicator:unchecked:pressed 
{ 
    image: url(../Checkbox_unchecked_pressed.png); 
} 
QCheckBox::indicator:checked:disabled 
{ 
    image: url(../Checkbox_checked_disabled.png); 
} 

画像のスクリーンショット:image

これは、上のあなたの質問のためのサンプルプロジェクトがありますgithub download here.

+0

2つのチェックボックスのサイズに(ごくわずかな)違いがありますが、コードと私の間では機能的な違いはありません。何か不足していますか? – AaronD

+0

試してみてください。それは感覚的です。サイズを5pxに設定すると、よりよく表示されます。 – aghilpro

+0

まだ違いはありません。編集を参照してください。また、私が望む価値の代わりに5ピクセルを試しました。 – AaronD

関連する問題