Seite 1 von 1

Tkinter und Pygame

Verfasst: Montag 15. Dezember 2008, 21:48
von r74
Hallo Forum

Bin ein absoluter Python-Neuling. Hier mein erstes Problem. Ich hoffe jemand von euch kann mir weiterhelfen.

Sobald ich die beiden mit <----- markierten Zeilen in den Code einbaue, funktioniert das Entry-Widget nicht mehr. D.h. ich kann auf das Eingabefeld klicken, aber der Cursor erscheint nicht.

Code: Alles auswählen

#!/usr/local/bin/python
from Tkinter import *     
import pygame

pygame.mixer.init(11025, -16, 1, 3072)  #<-------------------
pygame.init()                           #<-------------------

class Application(Frame):
    def __init__(self, master=None):
        Frame.__init__(self, master)   
        self.grid()   
        self.createWidgets()
    
    def createWidgets(self):
        myframe = Frame(self)
        
        l = Label(myframe, text = "name")
        l.pack()
        self.e = Entry(myframe)
        self.e.pack()
        myframe.grid()

app = Application()        
app.master.title("myGame")
app.mainloop()

Verfasst: Dienstag 16. Dezember 2008, 11:42
von kaytec
Hallo r74 !

Du verwendest zwei verschiedene Packer (grid und pack). Du darfst nur einen verwenden.

gruss frank

Verfasst: Dienstag 16. Dezember 2008, 15:04
von numerix
kaytec hat geschrieben:Du verwendest zwei verschiedene Packer (grid und pack). Du darfst nur einen verwenden.
Nein.

Das Problem ist die Kombination von Pygame und Tkinter - das funktioniert nicht:
http://archives.seul.org/pygame/users/N ... 00174.html

Verfasst: Dienstag 16. Dezember 2008, 15:17
von r74
@Numerix:
Vielen Dank für deine leider schlechte Nachricht.


Ich brauche Pygame nur um Sound zu erzeugen (also eine selbstgenerierte Sinuswelle zum Klingen zu bringen).
Mit Tkinter erstelle ich die gesamte GUI.

Kennt jemand eine andere Möglichkeit für die eigene Sounderzeugung, die mit Tkinter zusammen funktioniert?

oder umgekehrt:

Kennt jemand eine GUI-Implementierung die mit Pygame zusammen funktioniert?

Vielen Dank für eure kompetenten Antworten.



@Kaytec:
Daran liegt es nicht. Aber mit deiner Bemerkung was die zwei Packer betrifft hast du recht.

Verfasst: Dienstag 16. Dezember 2008, 15:31
von numerix
r74 hat geschrieben:Kennt jemand eine andere Möglichkeit für die eigene Sounderzeugung, die mit Tkinter zusammen funktioniert?
Vielleicht hilft dir das: http://sox.sourceforge.net/
r74 hat geschrieben:@Kaytec:
Daran liegt es nicht. Aber mit deiner Bemerkung was die zwei Packer betrifft hast du recht.
Nein, hat er nicht. Es ist kein Problem, in einem Programm beide Packer zu verwenden, wenn man weiß, was man tut und wie man es vernünftig anstellt. In der Regel wird das allerdings nicht nötig (und darum auch nicht sinnvoll) sein.

Verfasst: Dienstag 16. Dezember 2008, 15:44
von Leonidas
r74 hat geschrieben:Kennt jemand eine andere Möglichkeit für die eigene Sounderzeugung, die mit Tkinter zusammen funktioniert?
Snack.

Verfasst: Dienstag 16. Dezember 2008, 16:02
von r74
@Numerix und @Leonidas:
Das geht aber prompt. Vielen Dank euch beiden für die Links. Ich habe die Seiten kurz überflogen.

Ich suche schon etwas wie Pygame. Dort kann ich via einem sogeannten Sound-Array eine beliebige eigene Wellenform erstellen die dann abgespielt wird. Beispielsweise überlagere ich mehrere verschiedene Sinuswellen zu einer Superpositionswelle und lasse die dann abspielen. Geht das wirklich mit Snack oder SoX?

So wie ich das sehe kann Snack wie auch SoX "nur" bestehende Audiosamples ver- und bearbeiten?

Verfasst: Dienstag 16. Dezember 2008, 16:42
von numerix
r74 hat geschrieben:So wie ich das sehe kann Snack wie auch SoX "nur" bestehende Audiosamples ver- und bearbeiten?
Gut möglich - mehr habe ich mit beiden auch bisher nicht gemacht.

Warum bleibst du dann nicht ganz bei Pygame und verzichtest auf Tkinter?

Verfasst: Dienstag 16. Dezember 2008, 17:19
von wuf
Hallo r74

Betreffs Sounds wäre hier noch etwas zu finden. Du musst dich aber selber näher informieren:

http://eblong.com/zarf/boodler/

Gruss wuf :wink:

Verfasst: Dienstag 16. Dezember 2008, 20:21
von BlackJack
Um nochmal auf `pack()` und `grid()` einzugehen: Man sollte verschiedene Layoutmanager nicht im *gleichen Widget* mischen. Im *gleichen Programm* kann das durchaus sinnvoll sein. Zum Beispiel für ein Tastenfeld wie bei einem Telefon oder Taschenrechner ein Frame mit einem `grid()` mit Buttons bestücken, und den Frame dann mit `pack()` in den Rest der GUI zu stecken.

Verfasst: Dienstag 16. Dezember 2008, 21:05
von r74
@Numerix:
Naja, eben weil mir Tkinter ein schönes, einfaches GUI bietet und Pygame eben eine einfache Möglichkeit meine eigenen Wellen hörbar zu machen.

@Wuf:
Hab mir deinen Link mal angesehen. Sieht nicht einfach aus. Da muss ich etwas mehr Zeit dazu haben.


Es wäre ja noch möglich, dass ein anderes GUI-Toolkit (z.B. EasyGUI, wxPython, ...) mit Pygame zusammen funktioniert. Weiss hierzu jemand Bescheid?

Verfasst: Samstag 20. Dezember 2008, 14:52
von r74
Ich bin fündig geworden. Falls es jemanden interessiert:
Hier ein GUI Modul das mit Pygame zusammen funktioniert.