Ich versuche, einen Dialog zu einer kleinen Anwendung mit Genie hinzuzufügen. Es ist ein Openfile-Dialog, der beim Klicken in eine headerbar button öffnen sollte.Wie würde eine Switch-Schnittstelle in Genie aussehen?
Beispiele fehlen in Genie, also versuche ich jetzt, etwas von Vala anzupassen. Alle Beispiele, die ich gefunden habe, haben jedoch einen Switch-Befehl verwendet, den ich nicht in Genie übersetzen kann.
Dies ist der vala Code:
public void on_open_image (Button self) {
var filter = new FileFilter();
var dialog = new FileChooserDialog ("Open image",
window,
FileChooserAction.OPEN,
Stock.OK, ResponseType.ACCEPT,
Stock.CANCEL, ResponseType.CANCEL);
filter.add_pixbuf_formats();
dialog.add_filter (filter);
switch (dialog.run())
{
case ResponseType.ACCEPT:
var filename = dialog.get_filename();
image.set_from_file (filename);
break;
default:
break;
}
dialog.destroy();
}
Und das ist, was ich aus dem vorherigen Code ausgearbeitet:
def openfile (self:Button)
var dialog = new FileChooserDialog ("Open file",
window,
FileChooserAction.OPEN,
Stock.OK, ResponseType.ACCEPT,
Stock.CANCEL, ResponseType.CANCEL)
switch (dialog.run())
case ResponseType.ACCEPT
var filename
filename = dialog.get_filename()
image.set_from_file (filename)
break
default
break
dialog.destroy()
Es wirft offensichtlich einen Fehler bei der Case-Anweisung. Wie benutzt man den Schalter in Genie?
Denken Sie an 'switch' als Kurzschrift für eine' if-else if' Kette, Vergleichen der Variablen nach dem 'switch' zu jedem' case' Wert. 'break' verlässt den aktuellen Fallkörper; Wenn Sie am Ende keine "Pause" haben, wird es zum nächsten "Fall" durchgehen. Ich kenne Genie nicht, also weiß ich nicht, was das Äquivalent ist. – andlabs