Seite 1 von 1
tkMessagebox als aktives Fenster
Verfasst: Dienstag 30. Mai 2006, 10:42
von tuner
hy,
ich hab in meinem tool ein paar messageboxes eingebaut.
das problem ist, das diese per default inaktiv geöffntet werden.
ich würde aber gern per 'enter' einfach bestätigen...
wie kann man das einrichten, dass das message-Window gleich aktiviert wird?
gruss.
Verfasst: Dienstag 30. Mai 2006, 11:06
von Mawilo
Hallo tuner,
setze den
Focus drauf. Dann sollte das Fenster gleich aktiv sein.
Stephan
Verfasst: Dienstag 30. Mai 2006, 18:51
von tuner
Schon, aber tkMessageBox hat diese Option scheints nicht:
Code: Alles auswählen
AttributeError: 'str' object has no attribute 'focus_set'
snip:
Code: Alles auswählen
if (name==""):
tkMess=tkMessageBox.showinfo("", "Keine Titel!")
tkMess.focus_set()
Verfasst: Dienstag 30. Mai 2006, 19:52
von Mawilo
Sorry, aber ich dachte, du hast ein selbstgebasteltes Fenster gemeint. Die MessageBoxen habe so etwas nicht. bei mir bekommen die aber auch automatisch den Focus.
Verfasst: Dienstag 30. Mai 2006, 20:03
von tuner
hmm,
das Problem ist glaub, dass es meinem (main)-widget zugewiesen wird.
ich oeffne aber in dem widget ein weiteres.
also so etwas wie
dann wird das wohl winObj zugeordnet. kann ich das ändern?
gruss.
Verfasst: Dienstag 30. Mai 2006, 20:17
von Andy
Hallo tuner,
wenn Du in deinem Widget ein Menü hast und hier eben halt auch
MessageBoxen hast, dann ruft´s Du diese normalerweise direkt auf.
Es ist aktiv und Du kanst mit Enter auch bestätigen:
Code: Alles auswählen
def info (self):
if tkMessageBox.showinfo ('Info',
'irgendein Text'):
self.fenster.destroy()
Gruss Andy[/code]
Verfasst: Dienstag 30. Mai 2006, 20:27
von tuner
langsam schnall ich's. (ist mein erstes python-prog).
also mal das ganze:
Code: Alles auswählen
winObj.vidoeList.bind('<ButtonRelease-2>',winObj.insertModus)
...
def insertModus(winObj,event):
def newDBEntrySubmit(event=None):
if (name==""):
tkMess=tkMessageBox.showinfo("", "Keine Titel!")
winObj.insertView=Tk()
winObj.insertView.oke=Button(winObj.insertView.okeFrame,text='Ok',width=6, command=newDBEntrySubmit)
ich glaub das problem ist, dass ich diese funktion(en) nicht als global definiert hab (newDBEntrySubmit).
gruss, toni.