2017-02-04 11 views
-1

GladefileのPythonスクリプトを少し用意していますが、私のコードではできないものがありました。
私は解決できないいくつかの問題があります。私のラベル "DK_Tid"に書かれた日時を取得しようとしています。
は、しかし、私はエラーを取得:Python + Gladeの設定ラベルのテキスト

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

を、私はクラスの外にスレッドを移動しようとしたとき、そこには印刷されませんが、窓がありましたさ。すべての種類のバリエーションを試してみましたが、今は固まっています。
いいえ、私は何をしても動作しません。
誰も助けてくれますか?

#!/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() 

答えて

0

ソリューションが自分で見つかりました。 :-) Gtkはときどき奇妙です。

関連する問題