-1

I have a little python script with a Gladefile but my code i not doing was i wanted it to.
There several issues that i can't solve. Just trying to get a date/time written on my label "DK_Tid".
But I get an error:

    self.DK_Tid.set_text(dk_time)
    NameError: global name 'self' is not defined

And when i have tried to move the thread out of class, there is no print, but window is showed. All sort of variation i've tried, but now i'm stuck.
No mather what i do, it won't work.
Can anyone help me?

#!/usr/bin/env python
#
# Time test deppends on test.glade

import sys, time, thread, gi
gi.require_version('Gtk', '3.0')
from gi.repository import GObject,Gtk as Gtk

gi.require_version('GdkX11', '3.0')
from gi.repository import GdkX11

from datetime import datetime, timedelta


class GTK_Main(object):

    def __init__(self):
        self.gladefile = ("test.glade")
        self.builder = Gtk.Builder()
        self.builder.add_from_file(self.gladefile)
        self.builder.connect_signals(self)

        ## Create objects by name from glade
        self.window = self.builder.get_object("window")

        self.DK_Tid = builder.get_object("DK_Tid")

        self.window.show_all()


    # Create handles
    def on_window_destroy(self, object, data=None):
        Gtk.main_quit()


    def UTC_time():

        now = datetime.now()
        new_time = now + timedelta(hours=0, minutes=0, seconds=1)

        while True:
            if new_time < datetime.now():
                dk_time = time.strftime("%d %B %Y %H:%M:%S") 
                self.DK_Tid.set_text(dk_time)
                print dk_time
                now = new_time
                new_time = now + timedelta(hours=0, minutes=0, seconds=1)


    thread.start_new_thread(UTC_time())



GObject.threads_init()
GTK_Main()
Gtk.main()
RAJensen
  • 65
  • 1
  • 8

1 Answers1

-1

Solution found by myself. :-) Gtk is strange sometimes. I think that i needed to put in after the if function:

while Gtk.events_pending(): 
    Gtk.main_iteration() 

But is quite some time ago i made that script.

Stidgeon
  • 2,673
  • 8
  • 20
  • 28
RAJensen
  • 65
  • 1
  • 8