[python] Použití Entry (TkInter widget) místo raw_inputu
petrofF
petr0ff na seznam.cz
Sobota Červenec 3 07:51:31 CEST 2010
Potřebuji v cyklu zpracovat seznam:
-konzolovému řešení odpovídá zhruba kód:
(rozdělení dlouhé SMSky: "part_No.1" + "part_No.2" + "part_No.3....)
msgList = ["part_No.1", "part_No.2", "part_No.3", ...atd...]
def send():
for msg in msgList: # <<< CYKL
processMSG(msg)
def processMSG(message):
while 1:
urlForm.load() #
httplib2.Http().request =>sync.
showImage(urlForm.pictogramURL) #
urllib.urlretrieve(URL,"file") =>sync.
kod = raw_input("Opsat kod")
resp = urlForm.send(message,kod) # httplib2.Http().request
=>sync.
if urlForm.responseOK(resp):
break
-v TkInteru (callbacky):
Spuštění dávky (Button/command): self.send()
Zadání kontrolního kódu (Entry/bind keyevent=Enter): self.getCode()
class App(Tk):
def __init__(self, master)
Tk.__init__(self, master)
...
Button(self.fSTAT,text="Odeslat
zprávu",command=self.send).pack()
...
entry=Entry(frame2, width=10)
entry.pack(side=LEFT)
entry.bind('<Return>', self.getCode)
...
#CYKL S self.processMSG(msg)
def send(self): ??????
def processMSG(self,message): ??????
def getCode(self,event):
entry = event.widget
self.kod = entry.get() # uložení kódu
?????
Pro stručnost jsem vynechal ošetření chyb (při http connection errors)
Úvahy: iterator/generator? threads?
Další informace o konferenci Python