我对 Qt 相当陌生,如果有人能帮助我解决这个问题,我将不胜感激。我正在使用 Qt Creator 并创建了一个带有PlainTextEdit
. 我正在尝试使用 if 语句来验证在此文本框中输入的文本。我做了一个如下的函数
void validateText (QPlainTextEdit *myWidget)
{
if ((myWidget->toPlainText().endsWith("1")) ||
(myWidget->toPlainText().endsWith("2")) ||
(myWidget->toPlainText().endsWith("3")) ||
(myWidget->toPlainText().endsWith("4")) ||
(myWidget->toPlainText().endsWith("5")) ||
(myWidget->toPlainText().endsWith("6")) ||
(myWidget->toPlainText().endsWith("7")) ||
(myWidget->toPlainText().endsWith("8")) ||
(myWidget->toPlainText().endsWith("9")) ||
(myWidget->toPlainText().endsWith("0"))
)
{
qDebug() << "Integer entered";
}
else
{
qDebug() << "Non-integer entered";
}
}
但是,当我从插槽调用此函数时on_plainTextEdit_textChanged()
,出现错误:
undefined reference to validateText(QPlainTextEdit*)
目前,到目前为止,我在 textchanged 插槽中有这段代码:
void Options::on_plainTextEdit_textChanged()
{
validateText(qobject_cast<QPlainTextEdit*>(qApp->widgetAt(180,30)));
}
如您所见,我正在尝试获取对对象本身的引用并将其传递给函数,但我遇到了问题。我做错了什么,还是有更简单的方法将小部件对象传递给 Qt 中的函数?