0

私の問題は、ツリーにノードがあると、ツリーがファイルに保存されないことです。

ファイルに保存するコードは次のとおりです。

def project_save(self):


    try:
        output = open(self.project_file, 'w+')
        output.write(self.tree.GetItemText(self.root) + '\n')
        count = self.tree.GetChildrenCount(self.root)
        iter = 0
        child = ''

        for i in range(count):
            if i == 0:
                child, cookie = self.tree.GetFirstChild(self.root)

            else:
                child, cookie = self.tree.GetNextChild(self.root, cookie)

            output.write(self.tree.GetItemText(child) + '\n')
        output.close()
        self.projectdirty = False

    except IOError:
        MsgDlg(self, 'There was an error saving the new project file.', 'Error!', wx.OK)

私のツリーが次のようになったとき:

root
 |
  ---item
 |
  ---item

それはうまく動作します

しかし、私のツリーが次のようになると:

root
|
  ---item
 |
  ---item
 |
  -node
    |
     ---item
    |
     ---item

エラーが発生し、ファイルが空白になります

ファイル「project_manager.py」

output.write(self.tree.GetItemText(child) + '\n')

ファイル "C:\Python27\lib\sit-packages\wx-2-8-msw-ansi\wx\contrls.py"、行 5303、GetItemText 内

コントロールを返す.TreeCtrl_GetItemText(*args, **kwargs)

wx._core.PyAssertionError: c++ アサーション "item.IsOk()" が wxTreeCtrl::GetItemText() の ....\src\msw\treectrl.cpp(963) で失敗しました: 無効なツリー項目

4

1 に答える 1

0

数年前に、PersistentControlsモジュールがリリースされました。これは、wxPythonのほぼすべてのウィジェットを保存および復元するのに役立ちます。次のリンクを参照してください。

于 2012-05-04T14:54:51.633 に答える