簡體   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