Strona 1 z 1
[+] Vala, automatyczne pobieranie aktualnego czasu
: 25 czerwca 2013, 13:07
autor: mojnik
Wiem jak pobrać aktualny czas np.
Kod: Zaznacz cały
var now = DateTime();
now.fotmat("%s %m %y");
Wstawiam to np. do obsługi
przycisku. Jednak jak zrobić odświeżanie automatyczne? Teraz jest tak, że przy włączeniu programu jest godzina 12:12 i godzinę później nadal jest 12:12, a jak zrobić aby zegar automatycznie się sam zmienił?
Przeszukałem
http://valadoc.org/ jednak nie znalazłem niczego co by odpowiadało funkcji synchronizacji i odświeżania.
Jak się do tego zabrać, może szukam nie pod tymi określeniami?
: 25 czerwca 2013, 13:33
autor: Rafal_F
Jeżeli to dalej ten sam program w którym używasz gtk, to:
http://zetcode.com/tutorials/gtktutorial/gtkevents/ podtytuł "A timer example".
: 25 czerwca 2013, 18:11
autor: mojnik
Właśnie z tym mam problem. Chc
ę godzinę umieścić w etykiecie i ją odświeżać. Godzina w etykiecie jest umieszczona, ale nie zmienia się, pomimo że w konsoli widzę odświeżanie czasu co sekundę.
Kod: Zaznacz cały
using Gtk;
public class Panel : Window
{
public string clock = "clock test";
public bool getTime()
{
var now = new DateTime.now_local();
//stdout.printf (now.format("%a %d %b, %H:%M:%S\n"));
var haha = now.format("%a %d %b, %H:%M:%S");
this.clock = haha;
//stdout.printf (clock+"\n");
return true;
}
public Panel()
{
this.destroy.connect(Gtk.main_quit);
this.getTime();
Gtk.Box box = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 0);
box.pack_start (new Gtk.Label(clock), false, false, 0);
this.add (box);
}
public static int main(string[] args)
{
Gtk.init (ref args);
Panel panel = new Panel();
panel.show_all();
Timeout.add (1000, panel.getTime);
Gtk.main();
return 0;
}
}
Jak zmusić label aby pobierał wartość aktualną zmiennej?
: 25 czerwca 2013, 18:17
autor: Rafal_F
Za każdym razem w funkcji getTime musisz nadpisywać etykietę, w C/C++ robi się to za pomocą funkcji gtk_label_set_text.