我想在lineedit1上失去焦点后做一些特定的事情。这是应用程序的代码片段:
QFocusEvent* focuslost = new QFocusEvent(QEvent::FocusOut);
void lineedit1::focusOutEvent(focuslost) {
//do something
}
但它给了我编译器错误:
错误:名称后跟“::”必须是类或命名空间名称
我可以做些什么来实现这样的功能?
答案 0 :(得分:1)
您不能只是覆盖对象实例上的方法,您需要创建一个继承自QLineEdit
的新类并覆盖方法focusOutEvent
:
<强> mylineedit.h 强>
class MyLineEdit : public QLineEdit
{
protected:
void focusOutEvent(QFocusEvent * e) override;
}
<强> mylineedit.cpp 强>
void MyLineEdit::focusOutEvent(QFocusEvent * e)
{
// your code here
QLineEdit::focusOutEvent(e);
}
然后将lineedit1
声明为MyLineEdit* lineedit1