2013-07-14 718 views
0

我正在開發一個項目,其中有40個可選按鈕,我希望一個按鈕的圖標根據我定義的值進行更改。我沒有創建一個新的按鈕,只是改變當前的圖標。所以我通過嘗試更改一個按鈕的圖標來測試它。(Qt C++)QPushButton setIcon()不起作用

這裏是我當前的代碼:

QPixmap b1d0(":/textures/blocks/textures/blocks/stone.png"); 

QIcon ButtonIcon(b1d0); 
ui->slot_0->setIcon(ButtonIcon); 
ui->slot_0->setIconSize(b1d0.rect().size()); 

資源路徑是直接從我的資源文件複製所以它是正確的,我已經用它搞砸像瘋了似的,但沒有改變所以......

slot_0是我的pushButton。

我做錯了什麼?或者更好的是,我甚至允許更改現有pushButton的圖標?

感謝您的時間:)

+0

檢查'b1d0.isNull()'返回TRUE。如果是這樣,那麼它不會找到圖像文件或無法讀取它。 –

+0

有趣。這是真的,但我直接從我的資源文件複製路徑?我會一直搞亂它的。 – mrg95

+0

所以我直接在C:驅動器上將路徑更改爲圖片文件。它保持爲空。你認爲我不能將png放入pixmap或其他東西嗎? – mrg95

回答

1

如果你是在Windows上使用MSVC的編譯器,並且想要使用Qt的資源系統,您將需要

Q_INIT_RESOURCE(res) 

增加的main()開始,其中res是沒有「.qrc」的.qrc文件的名稱。

爲了得到這個完整視圖,看看這個要點:

https://gist.github.com/alexreinking/5992821