繁体   English   中英

Python 和 Qt:在 QTextEdit 中读取文本文件 - 程序崩溃,退出代码为 -1073740791 (0xC0000409)

[英]Python and Qt: Read text file in QTextEdit - program crashes with exit code -1073740791 (0xC0000409)

以下代码:

self.texteditor = QTextEdit ('')

def openmenu ():
    filename = QFileDialog.getOpenFileName (self, 'open file', '', 'text files (* .txt)')
    filename = os.path.abspath (filename [0])
    program settings.path openfile = filename
    file content = '' .join (open (file name, encoding = "utf8"). readlines ())
    self.texteditor.setText (file content)

测试 function 时,我收到以下带有文本文件的错误消息: Process finished with exit code -1073740791 (0xC0000409)

问题:我能做些什么来对抗它?

我已经使用您提供的代码重新创建了您想要的内容并使其正常工作

import sys
import os

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *


class Wnd(QMainWindow):
    def __init__(self, parent=None):
        super().__init__(parent)

        self.initUI()
        self.menuoffnen()
        pass

    def initUI(self):
        self.setGeometry(200, 200, 800, 600)
        self.layout = QVBoxLayout()
        self.layout.setContentsMargins(0, 0, 0, 0)
        self.setLayout(self.layout)

        self.texteditor = QPlainTextEdit('')
        font = QFont()
        font.setPointSize(12)
        self.texteditor.setFont(font)
    
        #self.layout.addWidget(editormenu) # Editormenü
    
        self.setCentralWidget(self.texteditor) # Eingabefeld für Texdateien

        self.setWindowTitle("NodeEditor")
        self.show()

    def menuoffnen(self):
        dateiname = QFileDialog.getOpenFileName(self, 'Datei öffnen','','Textdateien (*.txt)')
        dateiname = os.path.abspath(dateiname[0])
        dateininhalt = ''.join(open(dateiname, encoding="utf-8").readlines())
        self.texteditor.setPlainText(dateininhalt)
        self.setWindowTitle(os.path.basename(dateiname) + " - Marlems PQTTexteditor")

if __name__ == '__main__':
    app = QApplication(sys.argv)

    wnd = Wnd()

    sys.exit(app.exec_())

我用一个简单的 txt 文件尝试过它,它没有错误地工作。 你能用你的文件测试它吗?

我还发现您忘记将self作为参数传递给menuoffnen,还是在帖子中再次出现问题?

是的,您可以将所有这些都放在 try except 块中,当用户可以输入内容时,您应该以任何方式这样做。 您是否尝试过使用不同的文本文件? 有时由于解码错误,它有助于完全省略编码参数。

是有关检测文件编码的内容。 如果您希望将来支持多种编码,它可能会很有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM