Python und QT – Eingabe speichern
![](https://www.prog-lernen.de/wp-content/uploads/2024/07/grafik-12-1024x794.png)
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QTextEdit, QFileDialog
class App(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
layout = QVBoxLayout()
# Textarea erstellen
self.textEdit = QTextEdit()
layout.addWidget(self.textEdit)
# Speichern-Button erstellen
save_button = QPushButton('Text speichern')
save_button.clicked.connect(self.save_text)
layout.addWidget(save_button)
self.setLayout(layout)
self.setWindowTitle('Textarea mit Speichern-Button')
self.show()
def save_text(self):
# Text aus dem TextEdit holen
text = self.textEdit.toPlainText()
# Dialog zum Dateispeichern öffnen
options = QFileDialog.Options()
file_name, _ = QFileDialog.getSaveFileName(self, "Datei speichern", "", "Text Files (*.txt);;All Files (*)", options=options)
if file_name:
# Text in die Datei schreiben
with open(file_name, 'w') as file:
file.write(text)
if __name__ == "__main__":
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec())
Erklärungen:
- Textarea erstellen:
self.textEdit = QTextEdit()
layout.addWidget(self.textEdit)
- Speichern-Button erstellen und Funktion verknüpfen:
save_button = QPushButton('Text speichern')
save_button.clicked.connect(self.save_text)
layout.addWidget(save_button)
- Text speichern Funktion:
def save_text(self):
# Text aus dem TextEdit holen
text = self.textEdit.toPlainText()
# Dialog zum Dateispeichern öffnen
file_name, _ = QFileDialog.getSaveFileName(self, "Datei speichern", "", "Text Files (*.txt);;All Files (*)", options=options)
if file_name:
# Text in die Datei schreiben
with open(file_name, 'w') as file:
file.write(text)
In der save_text
Methode:
- Holst du den Text aus dem
QTextEdit
mittoPlainText()
. - Öffnest du einen Dialog zum Speichern der Datei.
- Wenn eine Datei ausgewählt wurde, schreibst du den Text in diese Datei.
Dieser Code ist gut, um Eingaben aus deinem Textfeld zu speichern. Wenn du noch mehr Features brauchst, lass es mich wissen, bro!