如何onmouseover
为 a 定义和单击事件QLineEdit
?我想发出 2 个信号 asonmouseover()
和clicked()
forQLineEdit
问问题
2580 次
2 回答
3
您可以在 QLineEdit 上安装事件过滤器。
这是一个例子:
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;
}
于 2013-05-17T09:31:04.237 回答
1
恐怕,您将不得不继承QLineEdit
和覆盖void mouseMoveEvent ( QMouseEvent * event )
and void mousePressEvent ( QMouseEvent * event )
(或者void mouseReleaseEvent ( QMouseEvent * event )
如果您愿意)。并且不要忘记setMouseTracking(true);
在没有按住鼠标按钮时调用来跟踪鼠标移动。
于 2013-05-17T09:03:03.517 回答