如何在Qt中获取QLineEdit的点击事件?
如何在Qt中获取如何在Qt中获取QLineEdit的点击事件?,qt,Qt,如何在Qt中获取QLineEdit的点击事件 我无法在QLineEdit?中看到与单击相关的任何插槽。您需要在扩展QLineEdit的新类中重新实现focusInEvent。以下链接将对您有所帮助 对于QLineEdit,没有类似于clicked()的信号,但您可以在自定义的mouseReleaseEvent实现中对其进行子类化并发出此类信号,如果这有帮助,我不知道, 输入文本后,我必须调用函数。我就是这样做的 connect(ui->passwordSetLineEdit,SIG
QLineEdit
的点击事件
我无法在
QLineEdit
?中看到与单击相关的任何插槽。您需要在扩展QLineEdit的新类中重新实现focusInEvent。以下链接将对您有所帮助
对于
QLineEdit
,没有类似于clicked()
的信号,但您可以在自定义的mouseReleaseEvent
实现中对其进行子类化并发出此类信号,如果这有帮助,我不知道,
输入文本后,我必须调用函数。我就是这样做的
connect(ui->passwordSetLineEdit,SIGNAL(textEdited(QString)),this,SLOT(onTextEdit(QString)));
当输入文本时,将发出TextEdit信号,因此将调用我的onTextEdit函数。我认为子类化QLineEdit不是正确的选择。如果不需要,为什么要创建子类?您可以改为使用事件过滤器。退房 例如:
MyClass::MyClass() :
edit(new QLineEdit(this))
{
edit->installEventFilter(this);
}
bool MyClass::eventFilter(QObject* object, QEvent* event)
{
if(object == edit && event->type() == QEvent::FocusIn) {
// bring up your custom edit
return false; // lets the event continue to the edit
}
return false;
}
尽管没有“点击”或“输入”事件。你可以使用
void cursorPositionChanged(int old, int new)
。当用户单击lineedit(如果已启用)时,它将发出还有一些其他场合,因此您必须验证哪些事件确实发生了,但我认为这比为某些应用程序子类化或使用事件侦听器更容易。您要求QLineEdit上的click事件有什么实际原因吗?@emaillenin:Ya,我想在单击textbox时带来另一个自定义控件…看起来
QEvent::FocusIn
是更合适的类型。没有QEvent::MouseClick
事件。改用QEvent::MouseButtonPres