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 に答える