[PyQt]Inhalt von TextEdit auslesen

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Echoplex
User
Beiträge: 6
Registriert: Sonntag 29. März 2009, 11:18

Hi,

wie kann ich den Inhalt von TextEdit auslesen?
In der Dokumentation steht, dass es mit TextEdit.toPlainText() geht, allerdings ist dann die Textdatei in die ich den Inhalt sepichern möchte leer.

Hier mein Code:

Code: Alles auswählen

f = open('inhalt.txt', 'w')
f = self.Text.toPlainText()
f.close()
MfG

P.S. Was muss ich machen damit sich beim Vergrößern des Fensters auch der Inhalt vergrößert?
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Zeig bitte den *kompletten* Code. Mit Zeile 3 wird Zeile 2 überflüssig, weil f überschrieben wird. Zu deiner PS-Frage: Benutze Layouts.
Echoplex
User
Beiträge: 6
Registriert: Sonntag 29. März 2009, 11:18

Hier die main.py
http://pastebin.com/f4042a1a1
und hier die ui.py
http://pastebin.com/mb10ec14
Zu deiner PS-Frage: Benutze Layouts.
Danke!
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Dein TextEdit-Feld heisst `textEdit`. Du solltest das statt `Text` benutzen.
Zeile 3 deines Beispiels solltest du in

Code: Alles auswählen

f.write(self.textEdit.toPlainText())
ändern.
Außerdem kannst du .ui - Dateien dynamisch einbinden: http://www.riverbankcomputing.co.uk/sta ... uic-module
Echoplex
User
Beiträge: 6
Registriert: Sonntag 29. März 2009, 11:18

Danke funktioniert!

Kannst du mir noch eine Beispielimplementation mit einer dynmaisch eingebundenen .ui geben? Blick da noch nicht ganz durch :?
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Mal ein Beispiel aus einem meiner Projekte rausgekramt:

Code: Alles auswählen

class SitemapControl(QWidget):
    """
    Widget to interact with sitemap.
    """
    def __init__(self, sitemap, config, parent=None):
        QWidget.__init__(self, parent)
        uic.loadUi("projectmanager.ui", self)
Das Ganze ist nichts spektakuläres. `uic.loadUi` nimmt als erstes Argument deine
UI-Datei und als Zweites das Objekt, das angepasst werden soll. Wichtig ist da,
dass das die beiden von der selben Klasse erben, dafür ist das der eleganteste
Weg. Eine andere Möglichkeit ohne die Einschränkung ist folgendes:

Code: Alles auswählen

gui = uic.loadUi("projectmanager.ui")
gui.setupUi(self)
Das würde in dem Fall Zeile 7 ersetzen.
Antworten