Qt5 - 如何让 q11=] 检测给定的 url 是否是本地的,如果不是则添加 "http://"?

Qt5 - How to make qurl detect wether the given url is local or not and add "http://" if not?

QUrl class 可用于打开本地或在线文件。我用QLineEdit把URL当成QString给了QUrl。该程序可以访问本地和在线文件。我的问题是:是否有任何官方方法可以自动检测给定的 url 是本地的还是在线的,并在 url 在线时自动添加 http://

例如,如果用户类型www.google.com,它应该是在线的并且应该在处理之前添加http://。如果用户类型 /home/username/somepath 它应该处于离线状态。

当然,一些带有字符串模式检查的 ifelse 东西可以用于此目的。我的问题是,如果官方支持从 Qt5 做这样的事情。

您可以使用 QUrl:fromUserInput(...) 来达到这个目的。

QString first("qt-project.org");
QString second("ftp.qt-project.org");
QString third("hostname");
QString fourth("/home/user/test.html");

qDebug() << QUrl::fromUserInput(first);   // QUrl( "http://qt-project.org" )       
qDebug() << QUrl::fromUserInput(second);  // QUrl( "ftp://ftp.qt-project.org" )    
qDebug() << QUrl::fromUserInput(third);   // QUrl( "http://hostname" )             
qDebug() << QUrl::fromUserInput(fourth);  // QUrl( "file:///home/user/test.html" )