gtk.Dialog

 

gtk.Dialog

gtk.Dialog ist die Basisklasse für alle Dialoge.

class gtk.Dialog(title=None, parent=None, flags=0, buttons=None)
Parameters:
  • title – Der Titel des Dialog-Fensters
  • parent – Das Elternfenster des Dialogs
  • flags – Eine Kombination von Schaltern (flags), die das Verhalten des Dialogs bestimmt, siehe Dialogschalter-Konstanten
  • buttons

    Eine Liste, die abwechselnd Knopf-Definitionen und die zugehörigen Antwort-Konstanten enthält.

    Eine Knopf-Definition ist entweder eine beliebige Zeichenkette, die auf dem Knopf dargestellt wird, oder eine Repertoire-Konstante.

    Eine Antwort-Konstante ist entweder eine ganze Zahl > 0 oder eine der vordefinierten Antwort-Konstanten

    Häufig benutze Knopf-Kombinationen sind als Knopftyp-Konstanten vordefiniert.

Wichtige Signale

gtk.Dialog implementiert alle Signale von gtk.Window. Außerdem interessant sind:

response()

Das Signal response wird ausgelöst, wenn ein Knopf des Aktions-Bereichs betätigt wird, der Dialog das Ereignis delete_event empfängt oder die Anwendung die Methode response() aufruft.

Wenn das Signal durch das Ereignis delete_event ausgelöst wurde, hat response_id den Wert gtk.RESPONSE_DELETE_EVENT, andernfalls den Wert der dem Knopf zugeordneten Antwort-Konstante beziehungsweise des entsprechenden Parameters beim Aufruf von response()

def callback(dialog, response_id, user_param1, ...)

Wichtige Methoden

gtk.Dialog implementiert alle Methoden von gtk.Window. Außerdem interessant sind:

response(response_id)

Die Methode response() löst das Signal response mit dem Wert von response_id aus.

Parameters:response_id – response_id für das response-Signal
run()

Die Methode run() macht das Dialogfenster modal und blockiert die Ereignisverarbeitung, bis der Dialog entweder das Signal response auslöst oder zerstört wird. Wenn der Dialog zerstört wird, gibt run() den Wert gtk.RESPONSE_NONE zurück, andernfalls den Wert des response_id- Parameters des Signals.

Am Anfang ruft run() die Methode show() auf, um den Dialog anzuzeigen. Für die Sichtbarkeit der Kind-Objekte des Dialogs sind aber Sie verantwortlich. Nach Beendigung von run() müssen Sie dafür sorgen, dass das Dialog-Fenster zerstört wird.

Während der Laufzeit von run() wird das Signal delete_event nicht wie üblich verarbeitet: Das Dialog-Fenster wird nicht zerstört, sondern run() beendet sich mit dem Rückgabewert gtk.RESPONSE_DELETE_EVENT.

Beispiel

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
 dlg = gtk.Dialog(title='Ein Dialog',
                  parent=self.window,
                  buttons=(gtk.STOCK_CANCEL,
                           gtk.RESPONSE_REJECT,
                           gtk.STOCK_OK,
                           gtk.RESPONSE_OK))

 result = dlg.run()
 if result == gtk.RESPONSE_OK:
    print 'Mach mal!'
 else:
    print 'Lieber nicht.'
 dlg.destroy()