hallo,
ich hoffe das dieser beitrag richtig gepostet ist
ich will eigentlich nur wissen ob man irgendwie in das fenster von xturtle Knöpfe integrieren kann?
vielen dank im vorraus
mfg
LP640
Buttons mit xturtle erstellen?????
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Den Tag haettest du besser mit dem Lesen der Doku verbringen sollen. Kannst du aber natuerlich immernoch nachholen.LP640 hat geschrieben:hey leute ich warte jetzt schon einen GANZEN TAG auf ne antwort
Wenn du aber noch lauter schreist bekommst du nicht mal mehr Mitleidsposts und wirst einfach nur noch ignoriert.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
das ist für turtle: dürfte aber eig so zimelich das Gleiche sein: http://docs.python.org/library/turtle.html
the more they change the more they stay the same
Hallo LP640,
ich habe dieses Turtle-Modul bisher weder verwendet noch eigentlich weiter beachtet. Wenn man jedoch Buttons und Co braucht, halte ich es fuer am sinnvollsten, wenn man die Turtle in Tkinter integriert.
Und siehe da, das geht tatsaechlich mit RawTurtle/RawPen.
Eine kleine Demo:
(Meine ersten und bisher einzigen Erfahrungen mit der Turtle.)
yipyip
ich habe dieses Turtle-Modul bisher weder verwendet noch eigentlich weiter beachtet. Wenn man jedoch Buttons und Co braucht, halte ich es fuer am sinnvollsten, wenn man die Turtle in Tkinter integriert.
Und siehe da, das geht tatsaechlich mit RawTurtle/RawPen.
Eine kleine Demo:
Code: Alles auswählen
import Tkinter as tk
import turtle as tu
import random as rand
class Gui(object):
def __init__(self):
self.root = tk.Tk()
self.canvas = tk.Canvas(self.root, width=600, height=400)
self.turtle = tu.RawTurtle(self.canvas)
self.turtle.speed(1000)
self.button = tk.Button(self.root, text='Do It', command=self.doit)
self.canvas.pack()
self.button.pack()
def doit(self):
self.turtle.color(rand.choice(('red', 'green', 'blue')))
self.turtle.fd(rand.randint(5, 20))
turn = (self.turtle.left, self.turtle.right)
turn[rand.choice((0, 1))](90)
def run(self):
self.root.mainloop()
####
if __name__ == '__main__':
Gui().run()
yipyip
yipyip erstmal danke für deine antwort aber bei mir kommt da folgende fehlermeldung:
was nun?
mfg
LP640
Code: Alles auswählen
line 12, in __init__
self.turtle = tu.RawTurtle(self.canvas)
AttributeError: 'module' object has no attribute 'RawTurtle'
was nun?
mfg
LP640
Sofern du nicht aus irgendwelchen Gründen auf das (x)turtle-Modul festgelegt bist, könntest du das frog-Modul einsetzen: http://pypi.python.org/pypi/frog/1.0.0
Das funktioniert im Prinzip wie das turtle-Modul, ist aber in einigen Dingen komfortabler. Der folgende Code erzeugt einen Button; bei jedem Buttonklick dreht der "Frosch" (= Turtle) sich um sich selbst.
Das funktioniert im Prinzip wie das turtle-Modul, ist aber in einigen Dingen komfortabler. Der folgende Code erzeugt einen Button; bei jedem Buttonklick dreht der "Frosch" (= Turtle) sich um sich selbst.
Code: Alles auswählen
from frog import Pool, Frog
pool = Pool()
frog = Frog(pool)
frog.jump(10)
frog.button("Dreh dich!", lambda x:frog.turn(360))
frog.home()
pool.ready()
also leider kenn ich mich nur mit xturtle also auch turtle aus
das von yipyip hat nun auch geklappt jedoch ist es nicht dass, was ich genau suche
ich suche sowas ähnleches wie folgendes:
jetzt soll keiner kommen und mir sagen dass es den befelh button() net gibt das weiss ich selber auch aber vielleicht kennt jemand sa was ähnliches
ich will also zwei knöpfe in einem bildschirm haben wenn ich den knopf1 drücke geht die turtle 10 meter (pixel) vor und beim anderen 20 pixel
weis einer wie man das machen kann??????????????????
mfg
LP640
das von yipyip hat nun auch geklappt jedoch ist es nicht dass, was ich genau suche
ich suche sowas ähnleches wie folgendes:
Code: Alles auswählen
from xturtle import*
knopf1=button("10 meter")
knopf2=button("20 meter")
if knopf1:
forward(10)
if knopf2:
forward(20)
ich will also zwei knöpfe in einem bildschirm haben wenn ich den knopf1 drücke geht die turtle 10 meter (pixel) vor und beim anderen 20 pixel
weis einer wie man das machen kann??????????????????
mfg
LP640
von turtle wirds dass auch nicht geben, nor vom toolkit, -> versuchs mal mit ner Einarbeitung von Tkinter
the more they change the more they stay the same
Ich habe es doch schon gesagt! und weil ich so nett bin: http://docs.python.org/library/tkinter.html
the more they change the more they stay the same
Suche mal unter Tkinter das Stichwort Canvas, dann den Beitrag von yipyip noch einmal anschauen:
(leicht verändert)
(leicht verändert)
Code: Alles auswählen
import Tkinter as tk
import turtle as tu
import random as rand
class Gui(object):
def __init__(self):
self.root = tk.Tk()
self.canvas = tk.Canvas(self.root, width=600, height=400)
self.turtle = tu.RawTurtle(self.canvas)
self.turtle.speed(1000)
self.button = tk.Button(self.root, text='Do It', command=self.doit)
self.canvas.pack()
self.canvas.create_window(0, -150, window=self.button)
def doit(self):
self.turtle.color(rand.choice(('red', 'green', 'blue')))
self.turtle.fd(rand.randint(5, 20))
turn = (self.turtle.left, self.turtle.right)
turn[rand.choice((0, 1))](90)
def run(self):
self.root.mainloop()
####
if __name__ == '__main__':
Gui().run()
also ich habs jetzt so weit gebracht dass ich 2 knöpfe habe aber die sind erstens net in dem xturtle fenster und zweitens kommt da nix raus wenn ich die drücke
so sieht das etwa aus:
ich bitte weiterum um hilfe
mfg
LP640
so sieht das etwa aus:
Code: Alles auswählen
from Tkinter import*
class Application(Frame):
def say_hi(self):
print "hi there, everyone!"
QUIT = Button()
QUIT["text"] = "QUIT"
QUIT["fg"] = "red"
QUIT["command"] = "bye"
QUIT.pack({"side": "left"})
hi_there = Button()
hi_there["text"] = "Hello",
hi_there["command"] = "hi there, everyone!"
hi_there.pack({"side": "left"})
QUIT.pack({"side": "left"})
mfg
LP640
Wo hast du das denn her??
ganz einfach:
ganz einfach:
Code: Alles auswählen
import Tkinter as tk
def say_hi():
print 'Hi'
win = tk.Tk()
button = tk.Button(win, text='Klick mich', command=say_hi)
button.pack()
win.mainloop()
Wenn das der einzige Grund für die Wahl von (x)turtle ist ...LP640 hat geschrieben:also leider kenn ich mich nur mit xturtle also auch turtle aus
Wenn du mit turtle zurecht kommst, dann auch mit frog. Müsstest dir nur halt ein wenig Zeit nehmen (es gibt aber eine ausführliche deutschsprachige Doku dazu). Viel anders als turtle ist das nicht:
Code: Alles auswählen
from frog import Pool, Frog
blatt = Pool()
stift = Frog(blatt)
stift.shape = "turtle" # wenn es denn eine turtle sein muss
stift.turn(45)
stift.move(100)
stift.color = "red"
stift.circle(40)
blatt.ready()
Code: Alles auswählen
from frog import Pool, Frog
blatt = Pool()
stift = Frog(blatt, visible=False)
stift.button("10 px vor", lambda x:stift.move(10))
stift.pos = -200,50
stift.visible = True
stift.shape = "turtle"
blatt.ready()
also erstmal danke leute für eure antworten
also ich schätze mal mir bleibt nix andres übrig als dat mit dem fröschchen zu probieren naja muss mein ganzes programm umschreiben aber egal
ich sag euch dann obs geklappt hat kann aber was dauern
nochmals vielen dank
mfg
LP640
also ich schätze mal mir bleibt nix andres übrig als dat mit dem fröschchen zu probieren naja muss mein ganzes programm umschreiben aber egal
ich sag euch dann obs geklappt hat kann aber was dauern
nochmals vielen dank
mfg
LP640