pyglet 윈도우와 콤보 윈도우를 같이 띄울려는데 잘 되지 않네요
- 0
-
0
import Tkinter as tk
import ttk
import pyglet
class Campo(object):
"""Clase para definir cada campo del formulario."""
def __init__(self, padre, linea, etiqueta, tipo, valor, modo=False):
self.padre = padre
self.linea = linea
self.etiqueta = etiqueta
self.valor = tk.StringVar()
self.etiqueta = tk.Label(padre, text=etiqueta)
self.etiqueta.grid(column=0, row=linea)
tipos = {'combobox': self.combobox,
'entry': self.entry}
tipos[tipo](valor, modo)
def entry(self, valor, modo=False):
self.ent = tk.Entry(self.padre, textvariable=self.valor)
self.valor.set(valor)
self.ent.grid(column=1, row=self.linea)
def combobox(self, valor, modo=False):
estado = 'readonly' if modo else 'normal'
self.box = ttk.Combobox(self.padre,
textvariable=self.valor,
state=estado)
self.box['values'] = valor
self.box.current(0) # Selecciona el primer elemento de la tupla.
self.box.bind("<<ComboboxSelected>>", self.combobox_elegir)
self.box.grid(column=1, row=self.linea)
def combobox_elegir(self, evento):
self.valor.set(self.box.get())
class Formulario(object):
"""Clase para definir un conjunto de campos."""
def __init__(self, padre, campos):
self.padre = padre
self.campos = {}
self.guardar = False
linea = 0
for campo in campos:
etiqueta, tipo, valor, modo = campo
self.campos[etiqueta] = Campo(padre, linea,
etiqueta, tipo, valor, modo)
linea += 1
self.btnacep = tk.Button(padre, text="Aceptar", command=self.aceptar)
self.btncanc = tk.Button(padre, text="Cancelar", command=self.cancelar)
self.btnacep.grid(column=1, row=linea, sticky='W')
self.btncanc.grid(column=1, row=linea, sticky='E')
def aceptar(self):
self.guardar = True
self.padre.destroy()
def cancelar(self):
self.padre.destroy()
vidPath="Wildlife.mpg"
window = pyglet.window.Window()
player = pyglet.media.Player()
source = pyglet.media.StreamingSource()
MediaLoad = pyglet.media.load(vidPath)
player.queue(MediaLoad)
player.play()
pyglet.app.run()
if __name__ == '__main__':
raiz = tk.Tk()
form = Formulario(raiz, [
["Nombre", "combobox", ['Juan', 'Luis', 'Pedro'],
False],
["Direccion", "entry", "", False],
["Tipo", "combobox", ['Casa', 'Trabajo', 'Movil'],
True],
["Numero", "entry", "(595)", False]
])
raiz.mainloop()
if form.guardar:
for campo in form.campos:
print campo, form.campos[campo].valor.get()
@window.event
def on_draw():
window.clear()
if player.source and player.source.video_format:
player.get_texture().blit(0,0)
답변 작성
질문에 적합한 답변을 상세히 작성해 주시기 바랍니다.
답변이 찬성되면 태그평판 +2점이 적립, 반대되면 태그평판 -1점 차감됩니다.
답변이 채택되면 태그평판 +10점이 적립됩니다.