【问题标题】:How to get string from listbox如何从列表框中获取字符串
【发布时间】:2014-05-03 18:11:07
【问题描述】:

我有一个非常复杂的问题。我搜索了整个互联网并尝试了一切,但没有任何效果。我想从列表框中获取字符串,然后从列表框中删除带有单词的文件中的行。可以请人帮助我吗?下面是代码:

def OnDelete(self, event):
sel = self.listbox.GetSelection()
如果 sel != -1:
self.listbox.Delete(sel)
subor = open("保存/savegame.txt", "r")
行 = subor.readlines()
subor.close()
subor = open("保存/savegame.txt", "w")
selstring = self.listbox.GetString(self.listbox.GetSelection())
换行:
if line!=selstring:
subor.write(line)
subor.close()

这是保存文件的代码:
def OnNewGame(self,event):
nameofplr = wx.GetTextFromUser('输入你的名字:', '新游戏')
subor=open("保存/savegame.txt","a")
subor.write("\n" + nameofplr)
subor.close()
savegame=open("Save/" + nameofplr + ".prjct", "w+")
savegame.close()

它显示了这个错误:

Traceback(最近一次调用最后一次): OnDelete 中的文件“D:\Python\Python Projects\Project\Project.py”,第 106 行 selstring = self.listbox.GetString(self.listbox.GetSelection()) GetString 中的文件“D:\Python\lib\site-packages\wx-3.0-msw\wx_core.py”,第 12962 行 返回 core.ItemContainer_GetString(*args, **kwargs) wx._core.PyAssertionError:C++ 断言“IsValid(n)”在 wxListBox::GetString() 中的 ....\src\msw\listbox.cpp(387) 失败:wxListBox::GetString 中的索引无效

非常感谢您的帮助!

【问题讨论】:

    标签: string listbox wxpython


    【解决方案1】:

    想想你的程序是如何工作的: 在 OnDelete 方法中,您检查选择了哪个项目,然后删除该项目。然后你对你的文件做一些事情。之后,您尝试从所选项目中获取字符串,但这已被您删除。

    你应该在该行之后调用 Delete

    selstring = self.listbox.GetString(self.listbox.GetSelection())
    

    如果你能把你的代码放在一个代码块中也很好,这样我们就可以看到缩进。

    【讨论】:

      【解决方案2】:

      非常比你!我已经修好了!如果有人遇到同样的问题,您必须为此更改 OnDelete 代码(有问题的第一个代码):

      def OnDelete(self, event):
      sel = self.listbox.GetSelection()
      f = open("保存/savegame.txt", "r") 读取 = f.readlines() f.close() 名称 = self.listbox.GetStringSelection() 新文件 = """""" 我在读: 如果 i 中的名称: 经过 别的: 新文件 += 我 n = open("保存/savegame.txt", "w") 一=str(新文件) n.write(一) n.关闭 self.listbox.Delete(sel)

      【讨论】:

        猜你喜欢
        • 2012-05-03
        • 2019-02-21
        • 2011-06-09
        • 2012-01-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-26
        • 2018-08-18
        相关资源
        最近更新 更多