如何为onmouseover
定义QLineEdit
和点击事件?我想为onmouseover()
clicked()
和QLineEdit
答案 0 :(得分:3)
您可以在QLineEdit上安装event filter。
以下是一个例子:
QLineEdit *line_edit = new QLineEdit(this);
ui->verticalLayout->addWidget(line_edit);
line_edit->installEventFilter(this);
在您的事件过滤器功能中,您可以执行以下操作:(这是您重写的功能)
bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
if(event->type() == QEvent::MouseButtonPress)
{
qDebug() << "CLICK";
}
if(event->type() == QEvent::MouseMove)
{
qDebug() << "MOUSE OVER";
}
return false;
}
答案 1 :(得分:1)
我担心,你必须继承QLineEdit
并覆盖void mouseMoveEvent ( QMouseEvent * event )
和void mousePressEvent ( QMouseEvent * event )
(或void mouseReleaseEvent ( QMouseEvent * event )
,如果你愿意的话)。当没有按住鼠标按钮时,不要忘记调用setMouseTracking(true);
来跟踪鼠标移动。