QPushButton
有一个clicked()
信号,所以可以做这样的事情
connect(ui->Btn,SIGNAL(clicked()),this,SLOT(DoSmth()));
QLineEdit
有一个textEdited()
信号,可以跟踪编辑操作。
我正在尝试在刚刚点击QLineEdit
时运行一个函数,而不是编辑。这可能吗?
答案 0 :(得分:0)
您可以继承QLineEdit并重新实现QWidget :: focusInEvent,您可以在其中检查焦点的原因是否是鼠标单击。然后使用此子类而不是QLineEdit。您可以创建自定义信号并从此事件处理程序中发出它,以便能够通过信号/插槽使用它。
#include <QLineEdit>
#include <QFocusEvent>
class FocusHandlerLineEdit : public QLineEdit
{
Q_OBJECT
protected:
void focusInEvent(QFocusEvent * event) {
QLineEdit::focusInEvent(event);
if(event->reason() == Qt::MouseFocusReason)
emit gotFocus();
}
signals:
void gotFocus();
};