2013-08-22 41 views
2

我開始在Qt中,並且我希望將QPushButton設置爲不同的圖標,只要有人將鼠標懸停在其上。這裏是我到目前爲止的代碼:Qt PushButton懸停/按下圖標

#include <QPushButton> 

QPushButton *button = new QPushButton(mainWindow); 
button->setIcon(QIcon(":/icons/button.png")); 
button->setIconSize(QSize(128,56); 
button->setGeometry(0,0,128,56); 

我聽說過一些關於樣式表,但我不知道如何使用它們,所有的文件對我來說是非常混亂。有人可以解釋,只要鼠標懸停在按鈕上,我可以如何將圖標設置爲「:/icons/button-hover.png」?另外,除非它被按下時完全一樣,否則如果你也可以讓我看到它,那將是非常棒的。

感謝提前:)

回答

3

您可以設置QPushButton實例的樣式表,如下圖所示:

button->setStyleSheet("QPushButton {border-image: url(c:/Data/navArrowsSelected.png); } QPushButton:focus { border-image: url(c:/icons/button-hover.png }"); 
+0

這不正是我想要的。我真的不確定是否應該使用樣式表來做到這一點,但是當我將鼠標懸停在它上面時,這看起來並不會改變圖像,並且圖像也是在按鈕背景中的時候我寧願它像當我使用setIcon()時那樣。 –

+0

使用'border-image'而不是'background-image'。我已經相應地改變了答案。 – Hariprasad

+1

好吧,現在似乎工作。我改變了:關注點:懸停並在.png之後添加了一個額外的「)」,它可以工作。謝謝! –

1

你嘗試了qproperty-語法?

QToolButton { 
    qproperty-icon: url(:/icon.png); 
} 
+0

它的工作原理,但沒有明顯的原因不適用於狀態變化。請參閱http://stackoverflow.com/questions/20573944/change-icon-on-state-change-using-qt-stylesheet – Phlucious