は、このスクリプトは私が期待どおりに動作しません:GTK3とPython:なぜset_propertyが遅れていますか?
import gi
import time
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
class GridWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="hi")
def fnButton1(self):
button1.set_property("label", "TEST")
print("hello")
time.sleep(3)
print("you")
grid = Gtk.Grid()
button1 = Gtk.Button(label="Button 1")
button1.connect("clicked", fnButton1)
button2 = Gtk.Button(label="Button 2")
grid.add(button1)
grid.attach(button2, 1, 0, 1, 1)
self.add(grid)
win = GridWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
Button1をクリックすると、そのラベルが変更されていませんが、「こんにちは」に印刷されています。これは、3秒が経過するまでのみ発生します。ラベルは "TEST"になり、 "you"が印刷されます。関数fnButton1()が終了してから、その前にプロパティの変更が行われているようです。なぜですか?どのようにこれを解決することができますか?
ボタンのクリックから始まる一部の機能の開始時に、いくつかのウィジェットプロパティを変更できるようにしたいだけです。これはプログラミングの間は普通ですが、そうではありませんか? GTK3(Pythonを使用する)の動作が異なるのはなぜですか?
[Gtkウィジェットが重複して表示される可能性があります](https://stackoverflow.com/questions/24272293/gtk-widget-showsup-with-delay) –