xturtle - fullscreen

Fragen zu Tkinter.
Antworten
Benutzeravatar
LP640
User
Beiträge: 142
Registriert: Dienstag 29. September 2009, 14:40

hallo
gibt es eine möglichkeit, dass das xturtle-window direkt im fullscreen modus erscheint und wenn nicht, geht es, dass exe-dateien direkt als fulscreen ausgeführt werden können?

mfg
LP640
busfahrer
User
Beiträge: 111
Registriert: Donnerstag 9. Oktober 2008, 17:42

Es müsste in deinem Verzeichnis in dem "xturtle.py" liegt auch eine Config-Datei "xturtle.cfg" liegen,die beim Start ausgewertet wird.Die kannst du entsprechend bearbeiten.

Gruß...busfahrer
Alles wird gut ;-)
Pascal
User
Beiträge: 271
Registriert: Samstag 4. April 2009, 22:18

Code: Alles auswählen

import Tkinter as tk
win = tk.Tk()
win.state('zoomed')
win.mainloop()
Und jetzt müsstes du nur noch das ganze an turtle anpassen.
Benutzeravatar
LP640
User
Beiträge: 142
Registriert: Dienstag 29. September 2009, 14:40

hi
also eine xturtle.cfg hab ich nirgendwo auf meinem rechner auch nicht dort wo xturtle.py ist gefunden
wie man die idee von Pascal auf turtle anpassen kann hab ich auch nicht hinbekommen
bin jetzt so weit: für bildschirmauflösung: 1024 * 768 hab ich folgenden befehl:

Code: Alles auswählen

winsize(1024,768,0,0)
allerdings ist das kein wirklicher fullscreen und klappt auch nicht bei anderen auflösungen

hat jemand ne bessere lösung???

mfg
LP640
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Was gefällt dir an dem Vorschlag von Pascal nicht?
Benutzeravatar
LP640
User
Beiträge: 142
Registriert: Dienstag 29. September 2009, 14:40

Was gefällt dir an dem Vorschlag von Pascal nicht?
ich brauche das für xturtle und weiß nicht wie ich das nun anpassen kann
für tkinter klappt das natürlich prima

mfg
LP640
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

xturltle = tkinter
the more they change the more they stay the same
Benutzeravatar
LP640
User
Beiträge: 142
Registriert: Dienstag 29. September 2009, 14:40

xturltle = tkinter
jaja xturtle ist sozusagen tkinter vereinfacht aber deshalb funktioniert der code von Pascal auch nicht

wie soll das denn jetzt gehen???

mfg
LP640
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

LP640 hat geschrieben:wie soll das denn jetzt gehen???
Schau dir den Quelltext von ``xturtle`` an und erweitere ihn dann um die fehlende Funktion. Da kann dir keiner helfen, weil es bisher vermutlich niemand gemacht hat. Aber du bekommst das schon irgendwie hin.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Oder nimm einfach frog statt xturtle, da geht das ganz einfach:

Code: Alles auswählen

from frog import Pool, Frog

pool = Pool(width=4000,height=3000)
frog = Frog(pool)
pool.ready()
Falls dein Monitor eine größere Auflösung als 4000x3000 px haben sollte, setzt du die Werte halt höher. Heraus kommt immer ein maximierter Pool.
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

@Pascal muss man da etwas besonderes beachten?

Ich bekomm xtrutle zwar in den FullScreen allerdings hängt sich das dann auf

//OK, winsize hängt sich auch auf, also sollte meins funktionieren

//Edit²: ach ich benutzte die Idle :P

//Edit³: Ich habs geschafft, ohne IDLE funktionierts perfekt! Als Hilfe für LP640, schau die an wo das "Tkinter-Fenster" in der Klasse RawTurtle erstellt wird, dann musst du nur noch eine Funktion zur Klasse hinzufügen, in der du auf das "Tkinter-Fenster" zugreifst
the more they change the more they stay the same
Benutzeravatar
LP640
User
Beiträge: 142
Registriert: Dienstag 29. September 2009, 14:40

was muss ich den jetzt hier noch dran verändern???

Code: Alles auswählen

class RawTurtle(TPen, TNavigator):
    """Animation part of the RawTurtle.
    Puts RawTurtle upon a TurtleScreen and provides tools for
    it's animation.
    """
    canvases = []
    screens = []    
    ##DEFAULT_MODE = "standard"
        
    def __init__(self, canvas, shape = "arrow", mode = "standard"): 
        if canvas not in RawTurtle.canvases:
            RawTurtle.canvases.append(canvas)
            RawTurtle.screens.append(TurtleScreen(canvas))
        self.screenIndex = RawTurtle.canvases.index(canvas)
        TNavigator.__init__(self, mode)
        TPen.__init__(self)
        screen = self.screens[self.screenIndex]
        screen._turtles.append(self)
        self.drawingLineItem = screen._createline()
        self.turtle = _TurtleImage(self.screenIndex, shape)
        self._poly = None
        self._creatingPoly = False
        self._fillitem = self._fillpath = None
        self._hidden_from_screen = False
        self.currentLineItem = screen._createline()
        self.currentLine = [self._position]
        self.items = [self.currentLineItem]
        self.stampItems = []
        self._update()
mfg
LP640
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Nichts, das habe ich auch nicht gesagt / geschrieben, aber die Klasse ist schonmal gut

Noch ein Tipp schau die auch die Klasse TPen und/oder TNavigator an in einer der beiden Klassen wird ein tk.TK() Objekt an einen Bezeichner/Variable gebunden und die brauchst du, dann gehts weiter mit der Funktion wie oben beschrieben

//Edit: Das macht ja richtig Spass:

Code: Alles auswählen

import xturtle as x

x.fullscreen()
x.right(90)
x.circle(300)
x.left(180)
x.circle(300)
x.mainloop()
//Edit²: Hab noch 2 weitere und einfachere Methoden gefunden, naja eine, die Andere wurde schon gepostet aber ignoriert :lol:
the more they change the more they stay the same
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Pascal hat geschrieben:

Code: Alles auswählen

import Tkinter as tk
win = tk.Tk()
win.state('zoomed')
win.mainloop()
Und jetzt müsstes du nur noch das ganze an turtle anpassen.
Das ist allerdings eine reine Windows-Lösung. Der status "zoomed" ist z.B. auf Linux-Systemen nicht definiert und führt zum Programmabbruch.
busfahrer
User
Beiträge: 111
Registriert: Donnerstag 9. Oktober 2008, 17:42

@LP640
ich hab hier bei mir unter /usr/lib/python2.5/lib_tk die "xturtle.py" und eine "xturtle.cfg" liegen.Diese "xturtle.cfg wird wohl beim Start von xturtle aufgerufen(sofern vorhanden) und die Werte werden als Standard genommen.Das ist eine einfache Textdatei die im Original so aussieht

Code: Alles auswählen

width = 400
height = 300
canvwidth = 360
canvheight = 270
shape = turtle
mode = logo
importvec = True
language = german
Ausgehend von @numerix Vorschlag hab ich in die Config mal etwas utopische Werte für "width" und "height" gesetzt.Das Verhalten ist dann wohl wie beim Frog-Modul,das xturtle Fenster startet immer maximiert.

Code: Alles auswählen

width = 5000
height = 4000
canvwidth = 360
canvheight = 270
shape = turtle
mode = logo
importvec = True
language = german
Es wird also vermutlich am einfachsten sein,du legst dir einfach eine Datei "xturtle.cfg" an.

Gruß...busfahrer
Alles wird gut ;-)
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Ganz und gar nicht,
die Lösung mit der Klasse ist nicht so toll
aber die Idee von Numerix
numerix hat geschrieben:Oder nimm einfach frog statt xturtle, da geht das ganz einfach:

Code: Alles auswählen

from frog import Pool, Frog

pool = Pool(width=4000,height=3000)
frog = Frog(pool)
pool.ready()
Falls dein Monitor eine größere Auflösung als 4000x3000 px haben sollte, setzt du die Werte halt höher. Heraus kommt immer ein maximierter Pool.

kann man auch mit der xturtle und winsize umsetzten
the more they change the more they stay the same
Antworten