本文整理汇总了Python中AnyQt.QtCore.QUrl.scheme方法的典型用法代码示例。如果您正苦于以下问题:Python QUrl.scheme方法的具体用法?Python QUrl.scheme怎么用?Python QUrl.scheme使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AnyQt.QtCore.QUrl
的用法示例。
在下文中一共展示了QUrl.scheme方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: search
# 需要导入模块: from AnyQt.QtCore import QUrl [as 别名]
# 或者: from AnyQt.QtCore.QUrl import scheme [as 别名]
def search(self, description):
if description.help_ref:
ref = description.help_ref
else:
raise KeyError()
url = QUrl(self.baseurl).resolved(QUrl(ref))
if url.isLocalFile():
path = url.toLocalFile()
fragment = url.fragment()
if os.path.isfile(path):
return url
elif os.path.isfile("{}.html".format(path)):
url = QUrl.fromLocalFile("{}.html".format(path))
url.setFragment(fragment)
return url
elif os.path.isdir(path) and \
os.path.isfile(os.path.join(path, "index.html")):
url = QUrl.fromLocalFile(os.path.join(path, "index.html"))
url.setFragment(fragment)
return url
else:
raise KeyError()
else:
if url.scheme() in ["http", "https"]:
path = url.path()
if not (path.endswith(".html") or path.endswith("/")):
url.setPath(path + ".html")
return url
示例2: BaseInventoryProvider
# 需要导入模块: from AnyQt.QtCore import QUrl [as 别名]
# 或者: from AnyQt.QtCore.QUrl import scheme [as 别名]
class BaseInventoryProvider(HelpProvider):
def __init__(self, inventory, parent=None):
super().__init__(parent)
self.inventory = QUrl(inventory)
if not self.inventory.scheme() and not self.inventory.isEmpty():
self.inventory.setScheme("file")
self._error = None
self._fetch_inventory(self.inventory)
def _fetch_inventory(self, url):
cache_dir = config.cache_dir()
cache_dir = os.path.join(cache_dir, "help", type(self).__qualname__)
try:
os.makedirs(cache_dir)
except OSError:
pass
url = QUrl(self.inventory)
if not url.isLocalFile():
# fetch and cache the inventory file.
manager = QNetworkAccessManager(self)
cache = QNetworkDiskCache()
cache.setCacheDirectory(cache_dir)
manager.setCache(cache)
req = QNetworkRequest(url)
# Follow redirects (for example http -> https)
# If redirects were not followed, the documentation would not be found
try:
req.setAttribute(QNetworkRequest.FollowRedirectsAttribute, 1) # from Qt 5.6
req.setAttribute(QNetworkRequest.RedirectPolicyAttribute, # from Qt 5.9
QNetworkRequest.NoLessSafeRedirectPolicy)
except AttributeError: # if ran with earlier Qt
pass
self._reply = manager.get(req)
manager.finished.connect(self._on_finished)
else:
with open(url.toLocalFile(), "rb") as f:
self._load_inventory(f)
def _on_finished(self, reply):
if reply.error() != QNetworkReply.NoError:
log.error("An error occurred while fetching "
"help inventory '{0}'".format(self.inventory))
self._error = reply.error(), reply.errorString()
else:
contents = bytes(reply.readAll())
self._load_inventory(io.BytesIO(contents))
def _load_inventory(self, stream):
raise NotImplementedError()
示例3: BaseInventoryProvider
# 需要导入模块: from AnyQt.QtCore import QUrl [as 别名]
# 或者: from AnyQt.QtCore.QUrl import scheme [as 别名]
class BaseInventoryProvider(HelpProvider):
def __init__(self, inventory, parent=None):
super().__init__(parent)
self.inventory = QUrl(inventory)
if not self.inventory.scheme() and not self.inventory.isEmpty():
self.inventory.setScheme("file")
self._error = None
self._fetch_inventory(self.inventory)
def _fetch_inventory(self, url):
cache_dir = config.cache_dir()
cache_dir = os.path.join(cache_dir, "help", type(self).__qualname__)
try:
os.makedirs(cache_dir)
except OSError:
pass
url = QUrl(self.inventory)
if not url.isLocalFile():
# fetch and cache the inventory file.
manager = QNetworkAccessManager(self)
cache = QNetworkDiskCache()
cache.setCacheDirectory(cache_dir)
manager.setCache(cache)
req = QNetworkRequest(url)
self._reply = manager.get(req)
manager.finished.connect(self._on_finished)
else:
with open(str(url.toLocalFile()), "rb") as f:
self._load_inventory(f)
def _on_finished(self, reply):
if reply.error() != QNetworkReply.NoError:
log.error("An error occurred while fetching "
"help inventory '{0}'".format(self.inventory))
self._error = reply.error(), reply.errorString()
else:
contents = bytes(reply.readAll())
self._load_inventory(io.BytesIO(contents))
def _load_inventory(self, stream):
raise NotImplementedError()
示例4: urlFromValue
# 需要导入模块: from AnyQt.QtCore import QUrl [as 别名]
# 或者: from AnyQt.QtCore.QUrl import scheme [as 别名]
def urlFromValue(self, value):
variable = value.variable
origin = variable.attributes.get("origin", "")
if origin and QDir(origin).exists():
origin = QUrl.fromLocalFile(origin)
elif origin:
origin = QUrl(origin)
if not origin.scheme():
origin.setScheme("file")
else:
origin = QUrl("")
base = origin.path()
if base.strip() and not base.endswith("/"):
origin.setPath(base + "/")
name = QUrl(str(value))
url = origin.resolved(name)
if not url.scheme():
url.setScheme("file")
return url