2017-09-09 94 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

Thanks @aghilpro for even但是不幸的是,我不能接受他的回答,因爲它沒有被編輯來包含實際的問題。 (我當時雖然給予好評吧)因此,這裏發生了什麼事:


之前,我曾使用過這個代碼,因爲「鬆」的色彩一直工作 - 他們只是應用到對象的每一個部分,這是很好的我在做:

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

正如你所看到的,我剛剛追加我的谷歌搜索結果在過去已經工作......而除了做絕對沒有因爲全球符無​​效的。基本上,我創建了一個全局風格,指定除顏色以外的所有內容的默認值,並且它覆蓋了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

我看到你的兩個複選框之間有一個很小的差別,但是在你的代碼和我的代碼之間沒有任何功能差異。我錯過了什麼嗎? – AaronD

+0

嘗試一下,它是明智的。設置大小5px,你可以看到它更好。 – aghilpro

+0

仍然沒有區別。請參閱編輯。還嘗試了5px而不是我想要的值。 – AaronD