
Comenzando con Python
Publicado por Diego (1 intervención) el 28/12/2012 19:16:54
Hola a todos, soy nuevo(muy nuevo)
en Python, estoy haciendo unas pruebas y la verdad es que ando un poco mareado.
Se trata de simplemente de pulsar un boton y que arranque zbar para leer códigos de barras con la web cam, he conseguido que arraque y lea códigos, pero si muevo la ventana donde se ve lo que esta viendo la web cam el programa peta, a no se que añada la linea cuadro.iconify() pero entonces si cierro la ventana del zbar me sale que python.exe debe cerrarse, error, bla, bla, bla.
No se como cerrar el zbar desde el mismo cuadro que lo hago y sin que me dé error.
Gracias de antemano, pido ayuda porque estoy bloqueado totalmente

Se trata de simplemente de pulsar un boton y que arranque zbar para leer códigos de barras con la web cam, he conseguido que arraque y lea códigos, pero si muevo la ventana donde se ve lo que esta viendo la web cam el programa peta, a no se que añada la linea cuadro.iconify() pero entonces si cierro la ventana del zbar me sale que python.exe debe cerrarse, error, bla, bla, bla.
No se como cerrar el zbar desde el mismo cuadro que lo hago y sin que me dé error.
Gracias de antemano, pido ayuda porque estoy bloqueado totalmente
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import Tkinter
import readcode
import time
def leer():
cuadro.iconify()#si no pongo esta linea peta simplemente al mover la ventana de zbar
time.sleep(2)
readcode.start()
cuadro=Tkinter.Tk()
cuadro.geometry("300x200")
cuadro.title("INICIO")
boton=Tkinter.Button(cuadro, text="pulsa", command=leer)
b_close=Tkinter.Button(cuadro, text="cerrar", command=cuadro.destroy)
boton.pack()
b_close.pack()
cuadro.mainloop()
#MODULO READCODE ORIGINAL DE ZBAR, SOLO HE AÑADIDO LA LINEA def start():
import os
import sys
zbar_path = os.path.join(os.environ['ProgramFiles'], 'zbar', 'bin')
os.environ['PATH'] = "{0};{1}".format(os.environ['PATH'], zbar_path)
from sys import argv
import zbar
def start(): #SOLO HE AÑADIDO ESTA LINEA
# create a Processor
proc = zbar.Processor()
# configure the Processor
proc.parse_config('enable')
# initialize the Processor
device = '/dev/video0'
if len(argv) > 1:
device = argv[1]
proc.init(device)
# setup a callback
def my_handler(proc, image, closure):
# extract results
for symbol in image.symbols:
# do something useful with results
print 'decoded', symbol.type, 'symbol', '"%s"' % symbol.data
proc.set_data_handler(my_handler)
# enable the preview window
proc.visible = True
# initiate scanning
proc.active = True
try:
# keep scanning until user provides key/mouse input
proc.user_wait()
except zbar.WindowClosed, e:
pass
Valora esta pregunta


0