我试图编写一个Gtk脚本来通知用户(在root中),因为我在root中遇到python-notify问题。 所以,我写了这段代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pygtk
pygtk.require('2.0')
import gtk
import gtk.gdk
import time
class Time:
def auto(self, Time, donnees=None):
print "Show the window"
self.window.show()
time.sleep(10)
print "Hide the window"
self.window.hide()
def __init__(self):
color = "#000"
positionX = 1560
positionY = 35
# Création fenetre principale
self.window = gtk.Window(gtk.WINDOW_POPUP)
# Position de la fenetre principale
self.window.move(positionX+100, positionY)
self.window.set_default_size(250, 80)
self.window.set_position(gtk.WIN_POS_NONE)
self.window.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
# Couleur de la fenetre
map = self.window.get_colormap()
colour = map.alloc_color(color)
style = self.window.get_style().copy()
style.bg[gtk.STATE_NORMAL] = colour
self.window.set_style(style)
#self.window.show()
self.auto(self, Time)
def main():
gtk.main()
return 0
if __name__ == "__main__":
Time()
main()
问题是我无法在需要时显示或隐藏窗口。当我在 init 中调用self.auto(self,Time)时,窗口不会出现。 我必须使用其他线程吗?
由于
答案 0 :(得分:0)
您需要将time.sleep(10)
替换为:
then = time.time()
while then + 10 > time.time():
while gtk.events_pending():
gtk.main_iteration()
time.sleep(0.1)
让你在睡觉时运行主循环。