Qt检查有效的URL

时间:2012-03-12 11:44:17

标签: c++ qt url

我正在尝试创建一个Qt应用程序,用于检查用户输入文本编辑的URL是否有效。

这是我到目前为止所做的,但它只是说输入的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)’

有没有人知道问题是什么,因为它一直都是真的?

2 个答案:

答案 0 :(得分:3)

你应该像这样使用qDebug

qDebug() << QString("Invalid URL: %1").arg(url.toString());

另请注意,QUrl::isValid()不检查网址的语法。您可能希望使用正则表达式来验证网址。

答案 1 :(得分:1)

QUrl::isValid()基本上只检查字符编码是否正确。你在考虑错误的网址是什么?

重新qDebug,您使用的表单基本上封装了printf,因此它不适用于QString。你想做的事:

qDebug() << QString("Invalid URL: %1").arg(url.toString());