PyQt5 QWebEngineView-从文件中进行标记-Python

PyQt5 QWebEngineView-从文件中进行标记-Python,python,pyqt5,Python,Pyqt5,我有这样一种方法:读取文件并将内容转换为纯文本 def show_open_dialog(): global file_path if not save_if_modified(): return file_name, _ = QFileDialog.getOpenFileName( window_area, 'Open fle...', os.getcwd(), 'Text

我有这样一种方法:读取文件并将内容转换为纯文本

def show_open_dialog():
    global file_path
    
    if not save_if_modified():
        return

    file_name, _ = QFileDialog.getOpenFileName(
        window_area, 
        'Open fle...', 
        os.getcwd(), 
        'Text files (*.txt *.py)'
    )

    if file_name:
        with open(file_name, 'r') as f:
            # Print content into text area.
            text_area.setPlainText(f.read())
            
        file_path = file_name
当这个方法被调用时,它会打开一个窗口,在那里我可以选择一个文件并像Windows的记事本一样对它充电,它工作得很好。现在我要做的是用该文件中的信息创建一个标记,也就是说,将其传递给HTML

我已经创建了QWebEngineView元素

browser_area = QWebEngineView()
这是我在“with open”中所做的修改,但它不起作用

# Print content into text area.
text_area.setPlainText(f.read())
            
# Raw data.
file_content = f.read()
            
# To HTML.
browser_area.setHtml(file_content)
      
# Show it.
browser_area.show()
打印内容后,仅显示一个空窗口

我还尝试了(markdown2.markdown(file_content))而不是.setHtml(),但它也不起作用

目前,我只想在新窗口中显示内容,并在无法加载HTML时显示消息。

当访问文件对象时,
read(size=-1)
函数从流中读取
size
字节数,并将流置于该位置

with open('somefile', 'r') as f:
    # reads the first 10 bytes
    start = f.read(10)
    # reads the *next* 10 bytes
    more = f.read(10)
    # move the position at the beginning
    f.seek(0)
    another = f.read(10)
    print(start == another)
    # This will print "True"
如果大小为-1(默认值),则表示读取整个对象,然后位置位于末尾。由于文件末尾没有什么可读的,如果您再次尝试读取,显然将什么也看不到

如果需要多次访问读取的数据,应将其存储在临时变量中:

with open(file_name, 'r') as f:
    data = f.read()
    text_area.setPlainText(data)
    browser_area.setHtml(data)
打开(文件名'r')作为f:
data=f.read()
文本区域。设置纯文本(数据)
浏览器_area.setHtml(数据)

谢谢,它工作正常,可以读取文件,但由于某些原因,窗口总是空出来。我在另一个文件中做了一个基本的例子,试图打开一个网页,但结果是一样的,所以问题一定是在渲染或其他方面,但我不知道它可能是什么。WSL和Windows都不呈现QWebEngineView。@GerRubio我尝试过,它可以与一个简单的QWebEngineView实例和一个基本HTML文件一起工作;我建议您编辑您的问题,提供一个包含一个html文件,可以重现问题(但不要更改文件加载的方面,否则整个帖子可能会导致混乱)。