Canvas abspeichern

Fragen zu Tkinter.
Antworten
3ff
User
Beiträge: 191
Registriert: Dienstag 22. Dezember 2009, 12:54
Wohnort: Odenwald Sued-Hessen

ich hab
canv= canvas.Rectangle
ind möchte das erzeugte Rechteck abspeichen, evt. pickeln.
Ich kann leider imer noch keine dateien hochladen.
Mit der pastebin, das muß doch auch klappen?
Grüße Fritz
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Wolltest du das nur mal so der Allgemeinheit mitteilen oder hast du auch irgendeine Frage?
BlackJack

@3ff: Die Frage ist ausserdem sehr schwammig und man muss raten. Hast Du vielleicht ein Rechteck auf einem `Tkinter.Canvas` mit der `create_rectangle()`-Methode erzeugt? Falls ja hätte Dein Quelltext etwas präziser sein können.

Solche GUI-Elemente kann man nicht picklen.
3ff
User
Beiträge: 191
Registriert: Dienstag 22. Dezember 2009, 12:54
Wohnort: Odenwald Sued-Hessen

@numerix
war das nicht als Frage zu verstehen? oder erwartest Du 1 Fragezeichen?
leider klappt das mit der pastebin nicht...
Problem:
wir wollen 1 kleines,einfaches Malprogramm schreiben und erzeugen mit der Funktion canvas.rectangle ein (was wohl?) dann wollen wir dieses Grafikobjekt auch mal abspeichern.
mit pickle und unpickle kann ich/man nur listen abspeichern, oder?
Frage: Kann man mit pickle und unpickle auch Grafikobjekte abspeichern?
Guude
Fritz 8) 8)
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

3ff hat geschrieben:leider klappt das mit der pastebin nicht...
Das erzaehlst du in jedem 2. Post, aber genauer bist du noch nicht geworden.

http://paste.pocoo.org/
http://pastebin.com/
http://pastebin.ca/
http://hpaste.org/fastcgi/hpaste.fcgi/new

Wenn das bei allen nicht klappt, dann kann es nicht an den pastebins liegen ...
BlackJack

@3ff: Man kann mehr als nur Listen "pickle"n. Um ein Objekt "pickle"n zu können muss es selber ge"pickle"t werden können und darf nur verweise auf Objekte enthalten, die ge"pickle"t werden können. "Grafikobjekt" von `Tkinter` können nicht gepickelt werden. Das gilt in der Regel für alle Objekte die Ressourcen belegen, die ausserhalb vom Python-Interpretierer liegen.

Man könnte sich für die Zeichenoperationen Proxy-Objekte basteln, die sich "pickle"n lassen und die Methoden haben um sich auf ein gegebenes `Canvas` zu zeichnen.
yipyip
User
Beiträge: 418
Registriert: Samstag 12. Juli 2008, 01:18

Vielleicht willst Du das Gezeichnete aber auch nur einfach als Postscript-Datei abspeichern.
Siehe auch
http://www.python-forum.de/viewtopic.php?f=18&t=18756

:wink:
yipyip
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Es ist immer noch nicht eindeutig, was genau du erreichen willst.
Wozu soll das Abspeichern gut sein? Was soll mit dem "Abgespeicherten" passieren? Soll es ein Grafikformat sein, so dass es z.B. als Bild ausgedruckt und bearbeitet werden kann? Soll es so gespeichert werden, dass es von eurem Programm wieder eingelesen und so reproduziert werden kann? Beides ist möglich, aber die Wege sind verschieden.
3ff
User
Beiträge: 191
Registriert: Dienstag 22. Dezember 2009, 12:54
Wohnort: Odenwald Sued-Hessen

@numerix and BlackJack
ich weiß, daß ihr mir helfen wollt, aber manchmal ist man einfach der Looser.
Ich hab grad 1 Editor mit Tkinter gebaut.
Zum Problem: wir wollen Flowcharts erstellen im grafic-mode mit Tkinter.
Die sollen
1. Abgespeichert
2. Ausgedruckt
3. Geändert
werden.
Guude Fritz 8) 8)
BlackJack

@3ff: Dann sollte man vielleicht die Einzelteile von Flow-Charts als Objekte modellieren, und diese Objekte dann "pickle"n. Wobei ich da auf längere Sicht vielleicht doch ein eigenes Format als JSON oder XML für entwerfen würde, dann sind die Daten nicht auf Python beschränkt.
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Der schnellste und portabelste Weg ist vllt. folgender:

- Chartdaten/-objekte als xml vorhalten (Speicherung)
- xsl erstellen für xml->svg Transformation
- svg als Ausgabeformat (Darstellung, Drucken etc.)

Für das svg-Format bringen die großen GUI-Toolkits schon entsprechende Unterstützung mit, wie es um Tkinter bestellt ist, weiss ich nicht. Zusätzlich wären die svg-Dateien auch ohne Euer Programm einsehbar, wenn Ihr dessen Export zulassen wollt.
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

@jerch: Das hat dann aber wenig mehr mit Python zu tun, oder?
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Stichwort: Reinventing the square wheel ;)

Bei der groben Anforderungsliste liegt es doch nahe, zuerst vorhandene und standardisierte Methoden zu prüfen. Denkbar wäre auch der Einsatz von matplotlib und das Speichern der Daten in einem "pythonischerem" Format. Das hängt halt von den Anforderungen und der Datenbasis ab.
Aber auch der XML-Weg bietet noch genügend Spielraum für den Einsatz von Python (lxml lässt grüssen und nicht zuletzt die Aufbereitung und Interaktion mit der Darstellung)
Antworten