Qt的event事件的相关问题
发表于2019-05-10
回复:0
查看:3520 |
我自定义了了一个自己的pushbutton类,
<pre class='brush: cpp'>class MyButton:public QPushButton
{
public:
explicit MyButton(QWidget *parent = 0);
bool event(QEvent *e);
};
MyButton::MyButton(QWidget *parent)
:QPushButton(parent){
}
bool MyButton::event(QEvent *e){
if(this->isEnabled() == true){
if(e->type() == QEvent::MouseButtonPress){
this->setStyleSheet("background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1.000, stop:0 #07a8e1, stop:1 #036098);");
}
if(e->type() == QEvent::HoverEnter){
this->setStyleSheet("background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1.000, stop:0 #07a8e1, stop:1 #05629a);");
}
if(e->type() == QEvent::HoverLeave){
this->setStyleSheet("background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1.000, stop:0 rgba(6, 180, 242, 255), stop:1 rgba(2, 127, 202, 255));");
}
}
return true;
}</pre>
当我在程序中使用这个自定义的控件的时候,程序运行起来的时候空间居然看不到了。但是如果我把最后一行return true改为:return QPushButton::event(event),控件就可以看到并且正常运行,这是为什么?
登录 慧都网发表评论