3

私は wxPython を試しています。

タブ付きのインターフェイス (ノートブック) があり、各タブは基本的にファイル リスト ビューです (はい、ファイル マネージャーを作成しようとしています)。

ファイル リストは wx.ListCtrl を継承し、タブ付きインターフェイスは wx.Notebook を継承します。

始めたばかりで、フォルダーをダブルクリックするとそのフォルダーに移動しますが、タブのタイトルも変更したいと思います。

それ、どうやったら出来るの?

ファイルリストとそれに設定したいタイトルを表すオブジェクトがあり、

[ EDIT Notebook.SetPageText()は数値を取るため、タブ オブジェクトを直接渡すことはできません]

私の現在のアプローチは、タブの1つが私のタブと一致するまでタブを循環することです:

    for tab_id in range(self.GetPageCount()):
        if self.GetPage(tab_id) == tab:
            self.SetPageText(tab_id, title)
            break

これはかなり素朴に思えますが、よりスマートなアプローチはありませんか?

4

3 に答える 3

2

wxPython についてはわかりませんが、C++ クラスのすべてのメソッドをラップしていると思います。

wxNOT_FOUNDまたは選択されたページのインデックスを返すwxNotebook::GetSelection()があり、これを使用してwxNotebook::SetPageText()を呼び出すことができます。

または、このインデックスでwxNotebook::GetPage()を使用して、それがtabと等しいかどうかを確認します。

于 2009-04-05T09:12:20.183 に答える
0

このようなことをすると役立つと思います:


notebook.get_tab_label(notebook.get_nth_page(your_page_number)).set_text("Your text")

常に現在のタブへの参照が必要な場合は、「ページ切り替え」信号を接続し、ページを変数に保存する必要があります。

于 2009-04-05T08:48:31.803 に答える
-1

.GetPage は wx.Window を返すので、動作するtab.Label = titleはずです。

于 2009-04-05T08:08:05.783 に答える