如何从QPushButton中删除单击效果

时间:2012-09-28 09:38:13

标签: css qt styles stylesheet appearance

在QT中:我只想显示一个图标和一些文字,所以我使用QPushButton。但是如何从中删除点击效果呢?

2 个答案:

答案 0 :(得分:2)

您可以继承QPushButton并忽略除Paint事件之外的所有事件:

class IconLabel : public QPushButton {

...

bool IconLabel::event ( QEvent * e ) {
   if (e->type() == QEvent::Paint) {
      return QPushButton::event(e);
   }
   return true;
}

根据您的要求,可能需要让其他事件通过,例如,如果您想在IconLabel上使用工具提示:

   if (e->type() == QEvent::Paint ||
       e->type() == QEvent::ToolTip) {
      return QPushButton::event(e);
   }

答案 1 :(得分:2)

我没有尝试过这个solution,但看起来它应该有效。

从上面的链接复制

为标签使用加密文本,例如:

lbl->setTextFormat(Qt::RichText);
lbl->setText("<img src=":/myimage.png">Hello!");