【问题标题】:Qt check for valid URLQt 检查有效的 URL
【发布时间】:2012-03-12 11:44:17
【问题描述】:

我正在尝试创建一个 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?

【问题讨论】:

    标签: c++ qt url


    【解决方案1】:

    你应该像这样使用qDebug

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

    还要注意QUrl::isValid() 不检查 url 的语法。您可能希望使用正则表达式来验证 url。

    【讨论】:

      【解决方案2】:

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

      回复qDebug,你使用的表格基本封装了printf,所以不能和QString一起使用。你想做的事:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-22
        • 2011-04-17
        • 2016-11-09
        • 2011-03-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多