#python-3.x #function #class #gtk3 #pygtk
#python-3.x #функция #класс #gtk3 #pygtk
Вопрос:
Я программист-любитель, поэтому приношу извинения, если это кажется простым вопросом.
Когда я нажимаю на кнопку, вызывается функция. Однако функция, похоже, не содержит информации, необходимой для ее правильного завершения.
Я пробовал разные вещи, включая отправку объекта 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
Любая помощь была бы высоко оценена. Спасибо
Комментарии:
1. Вы получаете сообщение об ошибке, потому что вы не объявляете переменную
codeBox
как экземпляр, поэтомуcodeBox
это локальная переменная__init__
функции. ИзменитеcodeBox
наself.codeBox
, чтобы сделать его переменной экземпляра. Это сделает его доступным изon_button_create_uuid_clicked
.2. Это было оно. Спасибо. Теперь это имеет смысл. Очень ценю вашу помощь