最近想要那个QPushButton
当鼠标指针进入时可以发出信号。我怎样才能做到?
我知道 QPushButton 有一些已经定义好的信号,比如 clicked()
, pressed()
, destory()
等等。但是没有像hover(), enter(), ...
我看了一些关于它的信息:有人说可以通过css来完成。我不明白。你能给我一些建议吗?谢谢!
最佳答案
您可以使用 QWidget::enterEvent ( QEvent * event )为了这。
您覆盖此事件并在发生此事件时发送自定义定义的信号。
首先,您必须为此小部件启用鼠标跟踪(例如,构造函数中的 setMouseTracking(true)
)。
头文件:
class my_button
{
// ...
protected:
virtual void enterEvent( QEvent* e );
public Q_SIGNALS:
void hovered();
// ...
};
源文件:
void my_button::enterEvent( QEvent* e )
{
Q_EMIT hovered();
// don't forget to forward the event
QWidget::enterEvent( e );
}
使用按钮的位置:
connect( one_of_my_button, SIGNAL(hovered()), this, SLOT(do_something_when_button_hovered()) );
关于qt - 当鼠标悬停在 QPushButton 上时,如何从 QPushButton 发出信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9261175/