Seite 1 von 1

[PyQt]Inhalt von TextEdit auslesen

Verfasst: Samstag 18. April 2009, 18:22
von Echoplex
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?

Verfasst: Samstag 18. April 2009, 19:57
von derdon
Zeig bitte den *kompletten* Code. Mit Zeile 3 wird Zeile 2 überflüssig, weil f überschrieben wird. Zu deiner PS-Frage: Benutze Layouts.

Verfasst: Samstag 18. April 2009, 20:30
von Echoplex
Hier die main.py
http://pastebin.com/f4042a1a1
und hier die ui.py
http://pastebin.com/mb10ec14
Zu deiner PS-Frage: Benutze Layouts.
Danke!

Verfasst: Samstag 18. April 2009, 21:43
von cofi
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

Verfasst: Dienstag 21. April 2009, 19:43
von Echoplex
Danke funktioniert!

Kannst du mir noch eine Beispielimplementation mit einer dynmaisch eingebundenen .ui geben? Blick da noch nicht ganz durch :?

Verfasst: Dienstag 21. April 2009, 20:51
von cofi
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.