gpt4 book ai didi

python - gtk treeview - 具有实时更新的列表存储

转载 作者:行者123 更新时间:2023-12-01 06:16:29 26 4
gpt4 key购买 nike

我在尝试获取实时更新时遇到 TreeView 列表存储问题,我创建了一个示例来模拟我想做的事情。我希望 liststore1 每次循环都更新。

http://img204.imageshack.us/i/capturadetela5.png/

它应该更新 TreeView 列“速度”并每秒给它一个不同的数字,类似下载管理器的东西。

import gtk
import gtk.glade
import random

builder = gtk.Builder()
builder.add_from_file('ttt.glade')
window = builder.get_object('window1')
treeview = builder.get_object('treeview1')
store = builder.get_object('liststore1')
column_n = ['File','Size','Speed']
rendererText = gtk.CellRendererText()


for i in range(10):
foo = random.randint(100,256)
list_ = [('arquivo1.tar.gz', '10MB', '%s k/s' % foo)]

for x,y in zip(column_n,range(3)):

column = gtk.TreeViewColumn(x, rendererText, text=y)
column.set_sort_column_id(0)
treeview.append_column(column)


for list_index in list_:
store.append([list_index[0],list_index[1],list_index[2]])

window.show_all()

最佳答案

如果这是您的完整代码,则说明您缺少 GTK 主循环调用。

您需要做两件事(按此顺序)

1 - 将窗口的 destroy 信号连接到调用 gtk.main_quit()

的函数
def on_destroy(widget, user_data=None):
# Exit the app
gtk.main_quit()

window.connect('destroy', on_destroy)

2 - 启动 GTK 主循环:

gtk.main()

这是您的应用程序有效启动的位置,并且它将显示为挂起在该行,直到调用 gtk.main_quit() 为止。

更一般地说...您应该稍微清理一下代码:)看看 "Hello World" demo来自PyGTK tutorial - 它基本上涵盖了这些要点,并且更详细。您会发现遵循事物的总体结构非常有帮助。

如果你想要定时更新,看看函数timeout_addtimeout_add_seconds - 根据您的 PyGTK/PyGobject 版本,这些将位于 glibgobject 模块中。

(顺便说一句,GTKBuilder XML 文件通常具有 .ui 扩展名,尽管 Glade 并不知道。)

关于python - gtk treeview - 具有实时更新的列表存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3102464/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com