本文整理汇总了Python中PyQt5.QtCore.QBuffer.bytesAvailable方法的典型用法代码示例。如果您正苦于以下问题:Python QBuffer.bytesAvailable方法的具体用法?Python QBuffer.bytesAvailable怎么用?Python QBuffer.bytesAvailable使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyQt5.QtCore.QBuffer
的用法示例。
在下文中一共展示了QBuffer.bytesAvailable方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: HelpSchemeReply
# 需要导入模块: from PyQt5.QtCore import QBuffer [as 别名]
# 或者: from PyQt5.QtCore.QBuffer import bytesAvailable [as 别名]
class HelpSchemeReply(QIODevice):
"""
Class implementing a reply for a requested qthelp: page.
The Qt signal *closed* is emitted to signal that the web engine has read the data.
see: https://fossies.org/linux/eric6/eric/WebBrowser/Network/QtHelpSchemeHandler.py
All credits for this class go to:
Detlev Offenbach, the developer of The Eric Python IDE(https://eric-ide.python-projects.org)
"""
closed = pyqtSignal()
def __init__(self, job, engine, parent=None):
"""
Constructor
:param job: reference to the URL request
:type job: QWebEngineUrlRequestJob
:param engine: reference to the help engine
:type engine: QHelpEngine
:param parent: reference to the parent object
:type parent: QObject
"""
super(HelpSchemeReply, self).__init__(parent)
url = job.requestUrl()
strUrl = url.toString()
self.__buffer = QBuffer()
# For some reason the url to load maybe wrong (passed from web engine)
# though the css file and the references inside should work that way.
# One possible problem might be that the css is loaded at the same
# level as the html, thus a path inside the css like
# (../images/foo.png) might cd out of the virtual folder
if not engine.findFile(url).isValid():
if strUrl.startswith(QtHelp_DOCROOT):
newUrl = job.requestUrl()
if not newUrl.path().startswith("/qdoc/"):
newUrl.setPath("/qdoc" + newUrl.path())
url = newUrl
strUrl = url.toString()
self.__mimeType = mimetypes.guess_type(strUrl)[0]
if self.__mimeType is None:
# do our own (limited) guessing
self.__mimeType = self.__mimeFromUrl(url)
if engine.findFile(url).isValid():
data = engine.fileData(url)
else:
data = QByteArray(self.tr(
"""<html>"""
"""<head><title>Error 404...</title></head>"""
"""<body><div align="center"><br><br>"""
"""<h1>The page could not be found</h1><br>"""
"""<h3>'{0}'</h3></div></body>"""
"""</html>""").format(strUrl)
.encode("utf-8"))
self.__buffer.setData(data)
self.__buffer.open(QIODevice.ReadOnly)
self.open(QIODevice.ReadOnly)
def bytesAvailable(self):
"""
Public method to get the number of available bytes.
:returns: number of available bytes
:rtype: int
"""
return self.__buffer.bytesAvailable()
def readData(self, maxlen):
"""
Public method to retrieve data from the reply object.
:param maxlen: maximum number of bytes to read (integer)
:returns: string containing the data (bytes)
"""
return self.__buffer.read(maxlen)
def close(self):
"""
Public method used to close the reply.
"""
super(HelpSchemeReply, self).close()
self.closed.emit()
def __mimeFromUrl(self, url):
"""
Private method to guess the mime type given an URL.
:param url: URL to guess the mime type from (QUrl)
:returns: mime type for the given URL (string)
"""
path = url.path()
ext = os.path.splitext(path)[1].lower()
if ext in ExtensionMap:
#.........这里部分代码省略.........