Pygtk + Glade 自我刷新标签

1 投票
1 回答
1265 浏览
提问于 2025-04-16 12:13

首先,我是编程语言世界的新手,当然对Python也很陌生。

在我的工作中,我们使用Linux系统。时不时我需要在终端上检查一些命令和脚本的输出。所以,我想编写一个带有非常基本界面的简单应用程序,选择了Python和Pygtk以及Glade。不幸的是,我们的Linux版本比较老旧,我只能使用Python 2.4.3和Glade 2.12.1。我知道这些版本太旧了,但我必须使用它们。

在学习了一点Python和Pygtk,并借助大量教程后,我成功编写了一个带有简单界面的基本应用程序。例如,当我点击一个按钮时,它会收集一些系统信息并把这些信息写到一个标签上。然后我为不同的目的创建了不同的按钮。这虽然可以,但用处不大。正如你们猜的那样,我希望这些标签能在一段时间内自动刷新(比如每十分钟刷新一次)。我在网上搜索,发现了Timer类。同时,我也遇到了一些线程问题。但由于我是新手,无法将这些应用到我的简单代码中。以下是我的代码:

#!/usr/bin/env python

import os
import ...

class MyProject:
    def __init__(self):
        self.gladefile = "myproject.glade"
        self.wTree = gtk.glade.XML(self.gladefile)

        dic = { "on_window1_destroy" : gtk.main_quit,
                "on_sis_button.clicked" : self.sis_button_clicked,
                "on_......                            }

        self.wTree.signal_autoconnect(dic)

    def sis_button_clicked(self, widget):
        sislbl = self.wTree.get_widget("sis_label1")

    def ......

if __name__ == "__main__":
    frm = MyProject()
    gtk.main()

现在,我该如何在我的代码中实现自动刷新或者类似的功能呢?我需要逐个标签地应用,还是可以全局处理?我这样做是否正确,还是应该完全改变我的代码思路?

谢谢。

备注:如果你能给我指个方向让我读手册就好。直接的代码建议会让我非常高兴。

1 个回答

2

这里有一个示例,可以参考一下:http://tuxion.com/2010/04/16/periodic-timers-in-pygtk.html

撰写回答