-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()