【问题标题】:Kivy ListView refreshKivy ListView 刷新
【发布时间】:2014-10-04 20:52:31
【问题描述】:


您好,我有一个列表视图,我想将它用作记录器。
我已经尝试过做这项工作

ListView:
    id: x
    item_strings: []

x.item_string.appned(‘frank’)

or

ListView:
    id: x
    adapter:
        sla.SimpleListAdapter(data=[], cls=label.Label)


x.adapter.data.append(‘frank’)

这行得通。但是在整个工作完成后,我在列表中看到了 1000 行。但我想看到,在插入数组后,值应该直接显示在视图中。

我在一次插入或类似的事情后观察了一种列表视图刷新,但我找不到一些

任何想法。

谢谢

弗兰克

【问题讨论】:

    标签: python listview kivy


    【解决方案1】:

    您可能从文档中知道 ListView API 当时仍在构建和试验阶段。在您的情况下可能有帮助的是在附加项目后立即调用私有且因此未记录的 ListView 方法 _trigger_reset_populate():

    x.adapter.data.append(‘frank’)
    x._trigger_reset_populate()
    

    【讨论】:

      【解决方案2】:

      关键是多线程。

      ListView:
          id: logger
          adapter:
              sla.SimpleListAdapter(data=[], cls=label.Label)
      
      def logger(self, logger):
        for counter in range(0, 1000):
          logger.item_string.insert(0, str(counter) + ' log entry')
      
      thread.start_new_thread(logger, (self.logger))
      

      效果很好。

      【讨论】:

        猜你喜欢
        • 2021-10-15
        • 1970-01-01
        • 2012-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多