按下按钮后,我想在按钮下方的窗口中显示文本。我可以将文本写入控制台,但不能将其写入窗口。代码的第28行。请给我一个建议。谢谢。
编辑:还有一个问题:我想通过GTK Entry输入数字值,并通过我的def faktorial(f)输入阶乘。如何在Okno类中调用此def,并使用命令print在代码行34上打印结果?
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
class Okno(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="Button Demo")
pozice = Gtk.Grid()
self.add(pozice)
#textnad oknem
self.vstup1 = Gtk.Label()
self.vstup1.set_text("Před textem")
pozice.attach(self.vstup1, 10,10,10,10)
# okno se vstupem
self.vstup = Gtk.Entry()
self.vstup.set_text("Můj vstupní text")
pozice.attach(self.vstup, 10,20,10,10)
#tlačítko potvrď
tlacitko = Gtk.Button.new_with_label("klikni")
tlacitko.connect("clicked", self.kliknuto)
pozice.attach(tlacitko, 10,30,10,10)
self.label = Gtk.Label()
pozice.attach(self.label, 10,40,10,10)
def kliknuto(self, tlacitko):
self.label.set_text("kliknuto")
vystup = self.vstup.get_text() #získá obsah vstupu Entry
self.label.set_text(vystup) #vypíše text do okna
print(faktorial(vstup))
def faktorial(f):
""" vypočítá faktoriál celého čísla """
vysledek = 1
while f > 0:
vysledek = vysledek * f
f = f - 1
return vysledek
okno = Okno()
okno.connect("destroy", Gtk.main_quit)
okno.show_all()
Gtk.main()
您可以在按钮下方添加新的Gtk.Label
,并在每次单击按钮时设置文本。
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
class Okno(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="Button Demo")
pozice = Gtk.Grid()
self.add(pozice)
#textnad oknem
self.vstup1 = Gtk.Label()
self.vstup1.set_text("Před textem")
pozice.attach(self.vstup1, 10,10,10,10)
# okno se vstupem
self.vstup = Gtk.Entry()
self.vstup.set_text("Můj vstupní text")
pozice.attach(self.vstup, 10,20,10,10)
#tlačítko potvrď
tlacitko = Gtk.Button.new_with_label("klikni")
tlacitko.connect("clicked", self.kliknuto)
pozice.attach(tlacitko, 10,30,10,10)
self.label = Gtk.Label()
pozice.attach(self.label, 10,40,10,10)
def kliknuto(self, tlacitko, pozice=()):
self.label.set_text("kliknuto")
okno = Okno()
okno.connect("destroy", Gtk.main_quit)
okno.show_all()
Gtk.main()
[如果您希望每次单击按钮并显示条目时将文本添加到列表,则可以将文本添加到Gio.ListStore
模型,并将其绑定到Gtk.ListBox
实例,并创建一个[ C0]。见下文:
Gtk.Label