无法在笔记本中添加页面

无法在笔记本中添加页面

我在将页面添加到 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)

这是我们时不时都会犯的一个简单打字错误。

相关内容