Qt检查有效的URL
问题描述:
我想创建一个Qt应用程序,检查用户输入的文本编辑URL是否有效。Qt检查有效的URL
这是我到目前为止,但它只是说,输入的URL是有效的,即使当我输入一个不是。
bool checkUrl(const QUrl &url) {
if (!url.isValid()) {
//qDebug(QString("Invalid URL: %1").arg(url.toString()));
return false;
}
return true;
}
void MainWindow::on_pushButton_clicked()
{
QString usertext = ui->plainTextEdit->toPlainText();
QUrl url = QUrl::fromUserInput(usertext);
if (checkUrl(url))
ui->textEdit->setPlainText("Valid URL.");
else
ui->textEdit->setPlainText("Invalid URL.");
}
同样在qDebug行有错误:
/home/user/HTML/mainwindow.cpp:32: error: no matching function for call to ‘qDebug(QString)’
有谁知道是什么问题,因为它使返回true?
答
你应该使用qDebug
这样的:
qDebug() << QString("Invalid URL: %1").arg(url.toString());
也注意到,QUrl::isValid()
不检查URL的语法。您可能想要使用正则表达式来验证网址。
答
QUrl::isValid()
只基本检查字符编码是否正确。你在考虑一个错误的网址?
Re qDebug
,您使用的表格基本上封装了printf
,所以它不适用于QString
。你想做的事:
qDebug() << QString("Invalid URL: %1").arg(url.toString());