1

所以我正在开发一个文本编辑器,以更好地学习 wxPython(并制作一个我非常喜欢的文本编辑器:P)。我一直无法找到关于 wx.aui.AuiNotebook 类的大量信息。我想知道的一件事是如何与其页面交互。例如,我真的很想知道如何更改页面的标题(这样我可以在用户保存时更新页面标题或在有未保存的更改时标记它)。对此问题的任何帮助将不胜感激!

4

2 回答 2

2

该方法称为SetPageText,因此您可以执行以下操作:

    current_page = notebook.GetCurrentPage()
    current_page_index = notebook.GetPageIndex(current_page)
    current_label = notebook.GetPageText(current_page_index)
    if not current_label.endswith(' (*)':
        notebook.SetPageText(current_page_index, current_label + ' (*)')
于 2012-05-17T22:36:16.950 回答
1

显然,在 wxPython 2.8 版中不包括 wx.aui.AuiNotebook.GetCurrentPage()。我显然没有意识到 wx.aui.AuiNotebook 中的“页面”等同于添加到其中的面板。因此,以下代码将起作用,

    self.panelBox = []
    newPanel = wx.Panel(self, wx.ID_ANY)

    #YADA YADA STUFF!        

    self.nb.AddPage(newPanel, "Untitled Document "+str(self.untitledDocCount))
    currPageIndex = self.nb.GetPageIndex(newPanel)
    currLabel = self.nb.GetPageText(currPageIndex)
    if not currLabel.endswith(' (*)'):
        self.nb.SetPageText(currPageIndex, currLabel+' (*)')
    self.panelBox.append(newPanel)

由程序员来确保页面(面板)是可访问的。为此,我将面板引用存储在“面板框”中,然后在“更改选项卡”事件等条件下相应地在它们之间切换。我不知道这是否是最好的方法,但到目前为止它似乎有效。

于 2012-05-18T05:11:08.500 回答