Estoy depurando un error de experiencia de usuario en un programa PyGTK (aunque la pregunta probablemente también sea aplicable a GTK), y de repente me di cuenta de que el error se 'dispara' dependiendo del usuario que ejecuta el programa.¿Por qué el orden de los botones y el botón predeterminado cambian con el usuario que ejecuta un programa PyGTK/GTK?
que reduce la emisión de un guión muy simple en PyGTK:
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_size_request(250, 100)
self.set_position(gtk.WIN_POS_CENTER)
self.connect("destroy", gtk.main_quit)
self.set_title("Message dialogs")
ques = gtk.Button("Question")
self.add(ques)
ques.connect("clicked", self.on_ques)
self.show_all()
def on_ques(self, widget):
md = gtk.MessageDialog(self,
gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_QUESTION,
gtk.BUTTONS_YES_NO, "Are you sure to quit?")
md.run()
md.destroy()
PyApp()
gtk.main()
Cuando ejecuto esto en mi caja como a mí mismo, me sale este cuadro de diálogo:
Are you sure to quit?
<Yes> No
Cuando ejecuto esto en mi caja como raíz, me sale este cuadro de diálogo:
Are you sure to quit?
<No> Yes
tanto a los usuarios de hectáreas Tengo el mismo archivo .gtkrc-2.0, y uso KDE y no tengo ningún directorio oculto relacionado con GTK obvio en mi directorio de inicio, por lo que no puedo entender de dónde viene esa preferencia.
Antes de que alguien sugiera md.set_default_response(), eso no es exactamente lo que quiero. Traté de establecer md.set_default_response (gtk.RESPONSE_YES) después de crear el cuadro de diálogo, y sí, se selecciona el botón 'Sí', pero el 'No' se imprime a la izquierda.
Me gustaría entender de dónde viene este comportamiento, y tratar de solucionarlo de una vez por todas.