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
它应该处于离线状态。
当然,一些带有字符串模式检查的 if
和 else
东西可以用于此目的。我的问题是,如果官方支持从 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" )
QUrl
class 可用于打开本地或在线文件。我用QLineEdit
把URL当成QString
给了QUrl
。该程序可以访问本地和在线文件。我的问题是:是否有任何官方方法可以自动检测给定的 url 是本地的还是在线的,并在 url 在线时自动添加 http://
?
例如,如果用户类型www.google.com
,它应该是在线的并且应该在处理之前添加http://
。如果用户类型 /home/username/somepath
它应该处于离线状态。
当然,一些带有字符串模式检查的 if
和 else
东西可以用于此目的。我的问题是,如果官方支持从 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" )