2012-03-12 17 views
1

ユーザーがテキスト編集に入力したURLが有効かどうかを確認するQtアプリケーションを作成しようとしています。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を返し続けるような問題が何であるかを知っていますか?

答えて

3

あなたはこのようなqDebugを使用する必要があります。

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

QUrl::isValid()がURLの構文をチェックしないことに注意してください。あなたは正規表現を使ってURLを検証したいかもしれません。

1

QUrl::isValid()は、文字エンコードが正しいかどうかを基本的にチェックします。何が間違ったURLを検討していますか?

Re qDebugは、基本的にprintfをカプセル化しているため、QStringでは機能しません。あなたは何をしたい:

qDebug() << QString("Invalid URL: %1").arg(url.toString()); 
関連する問題