【问题标题】:wxWidgets - append item to bottom of listctrlwxWidgets - 将项目附加到 listctrl 的底部
【发布时间】:2013-12-20 02:36:56
【问题描述】:

我已经寻找了一段时间,但我没有找到我认为存在的魔法。

在 -1 处插入无效(0 是顶部)我没有尝试在 maxint 处插入,因为longs wx 回馈(很可能)没有排序,我得出结论是因为如果我插入两个其他项目之间的一个项目,没有神奇的方法让所有longs 在它之后的所有内容都增加 1。所以我一直认为这些是 wx 可以理解的一些无序 ID。

我并不总是按顺序插入,所以保持最后一个生成的不会起作用,我如何在 wx 中将一些东西插入到 listctrl 的底部?

我也用 wxPython 标记了它,因为如果你认识一个,你就会知道另一个。

我对返回的longs 的理解是否正确?我从来没有手动弄乱过它们。我的抽象契约的一部分 - 不要触摸它给我的东西来跟踪东西,作为回报它会起作用。

【问题讨论】:

    标签: wxpython wxwidgets


    【解决方案1】:

    如果我理解正确,您正在寻找:

    1. list.InsertStringItem(list.GetItemCount(), "...")
    2. list.Append(["...", "..."])

    如本例所示:

    import wx
    
    class MainWindow(wx.Frame):
        def __init__(self, *args, **kwargs):
            wx.Frame.__init__(self, *args, **kwargs)
            self.panel = wx.Panel(self)
    
            self.list = wx.ListCtrl(self.panel, style=wx.LC_REPORT)
            self.list.InsertColumn(0, "No.")
            self.list.InsertColumn(1, "Description")
            self.list.Arrange()
    
            for i in range(5):
                self.list.InsertStringItem(i, str(i))
                self.list.SetStringItem(i, 1, "It's the %d" % (i))
    
            self.list.InsertStringItem(self.list.GetItemCount(), "The END")
            self.list.Append(["And the other END", ""])
    
            self.sizer = wx.BoxSizer(wx.VERTICAL)
            self.sizer.Add(self.list, proportion=1, flag=wx.EXPAND | wx.ALL, border=5)
            self.panel.SetSizerAndFit(self.sizer)
            self.Show()
    
    app = wx.App(False)
    win = MainWindow(None)
    app.MainLoop()
    

    insert 也返回插入项的位置,因此在这种情况下没有帮助。

    【讨论】:

    • 我会发布一个 c++ 答案来配合这个,但是是的,我昨晚阅读了 ID。它们实际上不是 ID!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-06
    • 1970-01-01
    • 2016-01-23
    • 2012-11-20
    • 2020-06-20
    • 2021-01-29
    • 2018-02-25
    相关资源
    最近更新 更多