Я пишу программу GUI в Вала. Когда я его компиляции, компилятор выдает сообщение об ошибке:Как объявить поля?
The name e1 does not exist in the context of Subtract.minus
Код:
using Gtk;
class Subtract:Window{
public Subtract(){
this.title="Subtract program";
this.destroy.connect(Gtk.main_quit);
var e1=new Entry();
var e2=new Entry();
var lbl=new Label("Result");
var btn=new Button.with_label("Subtract");
var box=new Box(Gtk.Orientation.VERTICAL,5);
box.add(e1);
box.add(e2);
box.add(lbl);
box.add(btn);
this.add(box);
btn.clicked.connect(minus);
}
public void minus(){
int a=int.parse(e1.get_text());
int b=int.parse(e2.get_text());
int result=a-b;
lbl.set_label(result.to_string());
}
public static int main(string[]args){
Gtk.init(ref args);
var win=new Subtract();
win.show_all();
Gtk.main();
return 0;
}
}
Как я могу сделать переменные доступными из метода minus
.
Я никогда не пользовался Валой, но я предполагаю, что Subtract - это класс, в котором создается e1, а минус является членом этого класса. Как Vala обрабатывает класс для переменных? – oldtechaa
Ваши переменные 'e1' и' e2' являются локальными для конструктора 'Subtract()'. Вместо этого вам нужно объявить их в классе 'Subtract'. (Я предполагаю, что вы знакомы с языком, например Python или Ruby, где переменные экземпляра определяются внутри функций, это не то, как работает Vala. Вам нужно будет объявить их вместе с методами.) – andlabs
Я не знаю, как я объявляю их в vala язык. – rahi