我在将页面添加到 Notebook 小部件时遇到了一些问题。我收到的错误如下:
AttributeError: 'function' object has no attribute 'append_page'
我认为这意味着以下代码中的对象页面尚未设置为 Gtk.Notebook 类。
def add_page(self, pages):
textview = Gtk.TextView()
textbuffer = textview.get_buffer()
textbuffer.set_text("")
pages.append_page(textview, Gtk.Label("New Page"))
调用该代码的是:
def on_btn_new_page_activate(self, widget):
self.add_page(self.get_pages)
方法 get_pages() 如下(可能是问题所在):
def get_pages(self):
subjectNum = self.subjects.get_current_page()
pages = self.subject.get_nth_page(subjectNum)
return pages
主体变量是通过以下方式获取的有效笔记本:
self.subjects = self.builder.get_object("subjects")
谢谢。
编辑: 现在出现以下错误:
Traceback (most recent call last):
File "/home/nja/notetaker/notetaker/NotetakerWindow.py", line 100, in on_btn_new_page_activate
self.add_page(self.get_pages())
File "/home/nja/notetaker/notetaker/NotetakerWindow.py", line 73, in get_pages
pages = self.subject.get_nth_page(subjectNum)
AttributeError: 'NotetakerWindow' object has no attribute 'subject'
答案1
解决方法是:
self.add_page(self.get_pages())
不是self.add_page(self.get_pages)
后者传入的是函数 self.get_pages 而不是其返回值
编辑:
从:pages = self.subject.get_nth_page(subjectNum)
到:pages = self.subjects.get_nth_page(subjectNum)
这是我们时不时都会犯的一个简单打字错误。