Как сохранить из Gtk.Entry () в качестве переменной, а затем, например, * 10 и поместить новое значение в Gtk.Label (), в python3, используя PyGObject? (PyGtk) - PullRequest
0 голосов
/ 03 января 2019

Итак, я записываю число в запись, и когда я нажимаю кнопку, в метке должно появиться мое значение, умноженное на 10. Но в ответ у меня возникает эта ошибка, когда я нажимаю кнопку: объект 'str' не имеет атрибута 'get_text».Я не знаю, как это сделать.Помогите: (

import gi gi.require_version ('Gtk', '3.0') из gi.repository import Gtk

, класс EntryWindow (Gtk.Window):

def __init__(self):
    Gtk.Window.__init__(self, title="Entry Demo")
    self.set_default_size(200, 100)

    grid = Gtk.Grid()
    self.add(grid)        

    self.entry1 = Gtk.Entry()
    self.entry1.set_activates_default(True)        

    self.t1 = Gtk.Label()

    button = Gtk.Button(label="CALC")
    button.connect("clicked", self.calc)

    grid.attach(self.entry1, 0, 1, 1, 1)
    grid.attach(self.t1, 1,2,1,1)
    grid.attach(button, 2,1,1,1)

def calc(self, widget, data=None):
    port = self.entry1.get_text() 

    a = float(port.get_text())*10
    self.t1.set_text(" " + a.get_text())    

1 Ответ

0 голосов
/ 04 января 2019

Я сделал это.Я не знаю, если это лучшие решения, но это оно: (если у кого-то есть лучшее решение, я весь слух) def init (self): Gtk.Window. init (self, title = "Изменить текст метки")

    table = Gtk.Table(3, 3, True)
    self.add(table)

    adjustment = Gtk.Adjustment(0, 0, 100, 1, 10, 0)
    self.spinbutton = Gtk.SpinButton()
    self.spinbutton.set_adjustment(adjustment)

    self.label = Gtk.Label("Press the button")
    button = Gtk.Button("Press Me")
    button.connect("clicked", self.button_pressed)

    table.attach(self.label, 1, 2, 0, 1)
    table.attach(button, 1, 2, 1, 2)
    table.attach(self.spinbutton, 1, 2 ,2 ,3)

def button_pressed(self, button):
    port = self.spinbutton.get_value()

    self.label.set_text(str(int(port)*10))
...