2012-02-21 51 views
6

我正在查找與檢查/取消選中QRadioButton相關的問題。我用於檢查(白點)和取消選中(沒有白點)的圖像未更新。 我的問題是:我已經實施了幾個QRadioButton(s)。第一次所有的QRadioButtons被選中爲false。所以這種情況下的圖像沒有白點。當用戶選擇任何QRadioButton時,圖像會變爲另一個圖像,即帶有白點的圖像。在按鈕上單擊我將單選按鈕的狀態從選中狀態重置爲取消選中狀態。但圖像狀態不會改變。它們保持在選中狀態。的代碼片段如下:Qt中的QRadioButton檢查/取消選中問題

代碼:

if(ui->radioButtonReadOnlineData->isChecked()) 
    ui->radioButtonReadOnlineData->setChecked(false); 
if(ui->radioButtonSavetoDBReadOfflineData->isChecked()) 
    ui->radioButtonSavetoDBReadOfflineData->setChecked(false); 
if(ui->radioButtonViewLocalData->isChecked()) 
    ui->radioButtonViewLocalData->setChecked(false); 
if(ui->radioButtonDateRange->isChecked()) 
    ui->radioButtonDateRange->setChecked(false); 
if(ui->radioButtonAll->isChecked()) 
    ui->radioButtonAll->setChecked(false); 

每個QRadioButtons的圖片設置爲這樣的:

代碼:

ui->radioButtonAll->setStyleSheet(
      "QRadioButton::indicator::checked { image: url(:/Resources/radio-btn-selected.png);}" 
      "QRadioButton::indicator::unchecked {image: url(:/Resources/radio-btn-unselected.png);}" 
      ); 

任何線索,爲什麼QRradioButton圖像不會更新。謝謝。

回答

0

確保您的資源文件看起來像:

<qresource> 
    <file>Resources/radio-btn-selected.png</file> 
    <file>Resources/radio-btn-unselected.png</file> 
</qresource> 

並且它是在你的應用程序中正確包括在內。

  • 無論是在您的.pro文件.qrc
RESOURCES = myresource.qrc 
  • 可以創建一個外部二進制資源文件,然後在運行時用
QResource::registerResource("/path/to/myresource.rcc"); 
註冊它
  • 或者如果您使用的是設計師,您可以做​​。
11

您的問題是最可能與

setAutoExclusive(布爾)

默認情況下,屬於同一母公司的行爲,好像他們是相同的專屬按鈕組的所有按鈕。選擇一個後,您無法返回到未選中所有按鈕。

一個解決辦法是找出檢查什麼按鈕,該按鈕執行以下操作

theSelectedButton->setAutoExclusive(false); 
thsSelectedButton->setChecked(false); 
theSelectedButton->setAutoExclusive(true); 

看看這些鏈接瞭解更多信息:

http://developer.qt.nokia.com/forums/viewthread/5482

http://www.qtforum.org/article/19619/qradiobutton-setchecked-bug.html

+0

以下代碼適用於一個問題: – user1182217 2012-02-21 11:24:58

+0

以下代碼適用於一個問題:'theSelectedButton - > setCheckable(假); thsSelectedButton-> setChecked(false); theSelectedButton-> setCheckable(true); '問題是當您選擇一個新的單選按鈕時,先前選定的單選按鈕會出現。我將如何防止這種情況?請指導我。 – user1182217 2012-02-21 11:42:41

+0

您能否將您的更新代碼添加到問題中? – Kristofer 2012-02-21 11:54:25

相關問題