[+] Vala, automatyczne pobieranie aktualnego czasu

Potrzebujesz pomocy z C, C++, perl, python, itp.
mojnik
Beginner
Posty: 122
Rejestracja: 10 maja 2013, 12:54

[+] Vala, automatyczne pobieranie aktualnego czasu

Post 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?
Awatar użytkownika
Rafal_F
Moderator
Posty: 2350
Rejestracja: 29 sierpnia 2008, 16:45

Post 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".
mojnik
Beginner
Posty: 122
Rejestracja: 10 maja 2013, 12:54

Post 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?
Awatar użytkownika
Rafal_F
Moderator
Posty: 2350
Rejestracja: 29 sierpnia 2008, 16:45

Post 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.
ODPOWIEDZ