如何获得验证结果Qt?
How to get validate result Qt?
为了快速跳过 gui 代码,直接进入方法验证,我不知道,下一步是在单击登录按钮时获取验证结果。完整代码在这里 https://pastecode.io/s/ut3cuq3p
class MainWindow: public QWidget
{
Q_OBJECT
public:
MainWindow(){ ... }
public slots:
void validate(QLineEdit* pUserInput)
{
QRegularExpression rx("^[^_\W]+$");
QValidator* validator = new QRegularExpressionValidator(rx, this);
pUserInput->setValidator(validator);
// what property to get the validate result?
// i need to pass to QMessageBox
QMessageBox message;
message.setText(validateResult);
message.exec();
}
}
在 QLineEdit
上使用验证器时,您想查看 pUserInput->hasAcceptableInput()
的值,但您可以更好地设置它。您只需要在创建时将验证器分配给您的 QLineEdit
(除非您的验证正则表达式每次都在更改),然后您可以使用信号 QLineEdit::editingFinished
和 QLineEdit::inputRejected
来确定是否用户的输入是可以接受的 - 请参阅 QLineEdit documentation
MainWindow::MainWindow()
{
...
QValidator* validator = new QRegularExpressionValidator(rx, this);
pUserInput->setValidator(validator);
connect(pUserInput, &QLineEdit::editingFinished, this, &MainWindow::validText);
connect(pUserInput, &QLineEdit::inputRejected, this, &MainWindow::invalidText);
...
}
void MainWindow::validText()
{
// pUserInput has valid input text
...
}
void MainWindow::invalidText()
{
// pUserInput has invalid input text
...
}
为了快速跳过 gui 代码,直接进入方法验证,我不知道,下一步是在单击登录按钮时获取验证结果。完整代码在这里 https://pastecode.io/s/ut3cuq3p
class MainWindow: public QWidget
{
Q_OBJECT
public:
MainWindow(){ ... }
public slots:
void validate(QLineEdit* pUserInput)
{
QRegularExpression rx("^[^_\W]+$");
QValidator* validator = new QRegularExpressionValidator(rx, this);
pUserInput->setValidator(validator);
// what property to get the validate result?
// i need to pass to QMessageBox
QMessageBox message;
message.setText(validateResult);
message.exec();
}
}
在 QLineEdit
上使用验证器时,您想查看 pUserInput->hasAcceptableInput()
的值,但您可以更好地设置它。您只需要在创建时将验证器分配给您的 QLineEdit
(除非您的验证正则表达式每次都在更改),然后您可以使用信号 QLineEdit::editingFinished
和 QLineEdit::inputRejected
来确定是否用户的输入是可以接受的 - 请参阅 QLineEdit documentation
MainWindow::MainWindow()
{
...
QValidator* validator = new QRegularExpressionValidator(rx, this);
pUserInput->setValidator(validator);
connect(pUserInput, &QLineEdit::editingFinished, this, &MainWindow::validText);
connect(pUserInput, &QLineEdit::inputRejected, this, &MainWindow::invalidText);
...
}
void MainWindow::validText()
{
// pUserInput has valid input text
...
}
void MainWindow::invalidText()
{
// pUserInput has invalid input text
...
}