onmouseover并单击事件QLineEdit

问题描述 投票:0回答:2

如何为onmouseover定义QLineEdit和click事件?我想为onmouseover()制作clicked()QLineEdit两个信号

qt qlineedit
2个回答
1
投票

我担心,你必须继承QLineEdit并覆盖void mouseMoveEvent ( QMouseEvent * event )void mousePressEvent ( QMouseEvent * event )(如果你愿意,还可以使用void mouseReleaseEvent ( QMouseEvent * event ))。当没有鼠标按钮时,不要忘记调用setMouseTracking(true);来跟踪鼠标移动。


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;
}
© www.soinside.com 2019 - 2024. All rights reserved.