kyrsjo Skrevet 4. august 2011 Del Skrevet 4. august 2011 Hei! Jeg har følgende funksjon som håndterer klikk på en knapp, noe som gjøres ved å sprette opp en dialogboks med en gtk.Entry. Jeg ønsker at når brukeren trykker "enter" på tastaturet så skal gtk.RESPONSE_OK sendes, på samme måte som når brukeren flytter fokus/markøren til "OK" og trykker. Dessverre fungerer ikke dette... Den interessante biten omhandler "dia", like under "while True": def event_toolbutton_geomInstanceNewButton(self, widget, event, data=None): print "MainWindow::event_toolbutton_geomInstanceNewButton()" name = "" while True: dia = gtk.Dialog("Please enter name of new geometry instance:", self.window, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OK, gtk.RESPONSE_OK)) dia.set_default_response(gtk.RESPONSE_OK) nameBox = gtk.Entry() nameBox.set_text(name) nameBox.show() dia.vbox.pack_start(nameBox) dia.show_all() response = dia.run() name = nameBox.get_text() dia.destroy() if response == gtk.RESPONSE_OK: #Check for whitespace print "got: \"" + name + "\"" if " " in name: mDia = gtk.MessageDialog(self.window, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, "Name cannot contain whitespace") mDia.run() mDia.destroy() #OK, try to make the folder.. else: try: self.addGeom(name) break #Done! except AcdOptiGuiException_guiMain_nameTaken: #Nope, try again print "got: \"" + name + "\"" mDia = gtk.MessageDialog(self.window, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, "Name already in use") mDia.run() mDia.destroy() continue; #Response cancel or close else: break Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå