それで、私は wxPython をよりよく学ぶためにテキスト エディターに取り組んでいます (そして、私が本当に好きなテキスト エディターを作成します:P)。wx.aui.AuiNotebook クラスに関する多くの情報を見つけるのに苦労しています。私が知りたいのは、そのページを操作する方法です。たとえば、ページのタイトルを変更する方法を本当に知りたいです (ユーザーが保存したときにページのタイトルを更新したり、保存されていない変更があるときにページのタイトルをマークしたりできるようにするため)。この問題に関するご支援をいただければ幸いです。
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 に答える