Как вызвать функцию из класса? ошибка: «У объекта X нет атрибута Y» - PullRequest
1 голос
/ 25 апреля 2019

Я программист-любитель, поэтому прошу прощения, если это кажется простым вопросом.

Когда я нажимаю на кнопку, вызывается функция. Эта функция, однако, не содержит информации, необходимой для правильного завершения.

Я пробовал разные вещи, включая отправку объекта CodeBox, но у них есть свои ошибки при попытке.

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
import uuid


class ListBoxWindow(Gtk.Window):

    def __init__(self):
        Gtk.Window.__init__(self, title="Client Diary Cash Drawer Client")
        self.set_border_width(10)
        self.set_position(Gtk.WindowPosition.CENTER)


        # a bunch of interface elements setup here for Gtk to display properly

        # uid text box
        codeBox = Gtk.Entry()
        codeBox.props.valign = Gtk.Align.CENTER
        codeBox.set_editable(False)
        codeBox.set_size_request(300, 30)
        hbox.pack_end(codeBox, False, True, 0)
        UuidResult = uuid.uuid4()  # create a new uuid
        codeBox.set_text(str(UuidResult))
        listbox.add(row)


        # uid new button
        codeCreateButton = Gtk.Button()
        codeCreateButton.set_label("Create New Code")
        codeCreateButton.props.valign = Gtk.Align.CENTER
        codeCreateButton.connect("clicked", self.on_button_create_uuid_clicked)
        hbox.pack_end(codeCreateButton, False, True, 0)
        listbox.add(row)

    # create a new UUID 
    def on_button_create_uuid_clicked(self, widget):
        UuidResult = uuid.uuid4()  # create a new uuid
        self.codeBox.set_text(str(UuidResult))
        print(str(UuidResult))

Я ожидаю, что новый код UUID будет добавлен в codeBox, но я получаю следующую ошибку AttributeError: 'ListBoxWindow' object has no attribute 'codeBox'

Строка, на которую она ссылается, это self.codeBox.set_text(str(UuidResult)) в функции on_button_create_uuid_clicked

Любая помощь будет принята с благодарностью. Спасибо

...