Genie 中的切换界面会是什么样子?
How would a switch interface look in Genie?
我正在尝试使用精灵向小型应用程序添加对话框。这是一个打开文件对话框,单击 .
时应打开该对话框
Genie 中缺少示例,所以我现在正在尝试从 vala 中改编一些东西。但是,我发现的所有示例都使用了我无法转换为 Genie 的 switch 命令。
这是验证码:
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 ();
}
这是我从之前的代码中得出的结果:
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 ()
它显然会在 case 语句中抛出错误。如何在精灵中使用开关?
啊,我明白了。在 Vala 中等同于 switch
的是 case...when
。上例中的开关是
case dialog.run()
when ResponseType.ACCEPT
var filename = dialog.get_filename()
image.set_from_file(filename)
default
pass
我正在尝试使用精灵向小型应用程序添加对话框。这是一个打开文件对话框,单击
Genie 中缺少示例,所以我现在正在尝试从 vala 中改编一些东西。但是,我发现的所有示例都使用了我无法转换为 Genie 的 switch 命令。
这是验证码:
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 ();
}
这是我从之前的代码中得出的结果:
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 ()
它显然会在 case 语句中抛出错误。如何在精灵中使用开关?
啊,我明白了。在 Vala 中等同于 switch
的是 case...when
。上例中的开关是
case dialog.run()
when ResponseType.ACCEPT
var filename = dialog.get_filename()
image.set_from_file(filename)
default
pass