QT cpp QToolButton 设置QIcon设置悬浮态等状态
时间: 2023-10-05 16:04:16 浏览: 140
qt for android 实现悬浮窗
3星 · 编辑精心推荐
要设置QToolButton的不同状态下的QIcon(如正常、悬浮、按下等),可以使用QToolButton的setIcon()函数和setStyleSheet()函数来实现。
首先,使用QToolButton的setIcon()函数来设置QIcon:
```cpp
QToolButton *button = new QToolButton(this);
button->setIcon(QIcon(":/images/normal.png"));
```
其中,":/images/normal.png"是一个资源文件路径,用来指定正常状态下的QIcon。
然后,使用setStyleSheet()函数来设置悬浮态等状态下的QIcon:
```cpp
button->setStyleSheet("QToolButton:hover{background-color:yellow; border-image: url(:/images/hover.png)} \
QToolButton:pressed{background-color:green; border-image: url(:/images/pressed.png)}");
```
其中,hover和pressed是伪状态选择器,分别表示鼠标悬浮和点击状态。在这里,我们使用border-image属性来设置背景图片,从而实现不同状态下的QIcon。
完整的代码示例:
```cpp
QToolButton *button = new QToolButton(this);
button->setIcon(QIcon(":/images/normal.png"));
button->setStyleSheet("QToolButton:hover{background-color:yellow; border-image: url(:/images/hover.png)} \
QToolButton:pressed{background-color:green; border-image: url(:/images/pressed.png)}");
```
注意,要使用setStyleSheet()函数来设置不同状态下的样式,需要保证按钮的autoDefault属性为false,否则无效。可以使用setAutoDefault(false)函数来设置。
阅读全文