Qt проверить действительный URL - PullRequest
1 голос
/ 12 марта 2012

Я пытаюсь создать приложение 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

Ответы [ 2 ]

3 голосов
/ 12 марта 2012

Вы должны использовать qDebug так:

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

также обратите внимание, что QUrl::isValid() не проверяет синтаксис URL. Вы можете использовать регулярные выражения для проверки URL.

1 голос
/ 12 марта 2012

QUrl::isValid() только в основном проверяет правильность кодировки символов. Что вы думаете о неправильном URL-адресе?

Re qDebug, используемая вами форма в основном содержит printf, поэтому она не работает с QString. Вы хотите сделать:

qDebug() << QString("Invalid URL: %1").arg(url.toString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...