以下代码:
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)
在测试函数时,我得到了一个文本文件,得到了以下内容 错误信息: 进程已完成,退出代码为 -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,还是帖子中又是一个问题?
是的,您可以尝试所有这些,除了块,当用户可以输入内容时,您应该以任何方式执行此操作。 您是否尝试使用其他文本文件?有时出现解码错误会帮助完全省略编码参数。
以下是有关检测文件编码的内容。如果您想在将来支持多种编码,它可能很有用。