首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环浏览文件,并在关闭前一个窗口后在tkinter窗口中显示每一行?

循环浏览文件,并在关闭前一个窗口后在tkinter窗口中显示每一行?
EN

Stack Overflow用户
提问于 2017-02-02 02:11:11
回答 1查看 821关注 0票数 0

我想在Tkinter窗口中显示文本文件中的某些行。在显示该行之后,Tkinter窗口消失,再次返回并显示文件中的下一行,窗口消失并再次重复该过程,直到脚本停止。

到目前为止,我编写的脚本同时显示文件中的所有行,消失并再次出现,重复相同的过程,直到脚本为stopped.Here是代码:

代码语言:javascript
复制
import Tkinter as Tk
import time

class Window:
   def __init__(self):
       self.root = None
       self.hide = 10 #minutes
      self.show = 10 #seconds

   def close(self):
       self.root.destroy()
       return

   def new(self):
      fh=open('subliminal.txt')
      lines = fh.read().splitlines()
      self.root = Tk.Tk()
      for line in lines:
         Tk.Button(self.root, text= line, command='callback').pack()
         self.root.after(self.show*1000, self.loop)

   def loop(self):
      if self.root:
           self.root.destroy()
      time.sleep(self.hide)
      self.new()
      self.root.mainloop()
      return

Window().loop()

这个脚本是用Python2编写的,但我也愿意在另一个GUI中这样做,因为它是轻量级的。

谢谢,这对我很有效:

代码语言:javascript
复制
import Tkinter as Tk
import time

class Window:
    def __init__(self):
        self.root = None
        self.hide = 10 #minutes
        self.show = 10 #seconds

    def close(self):
        self.root.destroy()
        return

    def new(self):
        fh=open('subliminal.txt')
        lines = fh.read().splitlines()
        for line in lines:
           self.root = Tk.Tk()
           Tk.Button(self.root, text= line,    command='callback').pack()
           self.root.update()
           time.sleep(5)

           self.root.destroy()

     def loop(self):

         self.new()
         self.root.mainloop()
         self.loop()
         return

Window().loop()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-02 02:48:06

我相信这可能就是你要找的:

代码语言:javascript
复制
import tkinter as Tk
import time

class Window:
    def __init__(self):
        self.root = None
        self.hide = 10 #minutes
        self.show = 10 #seconds

    def close(self):
        self.root.destroy()
        return

    def new(self):
        fh=open('subliminal.txt')
        lines = fh.read().splitlines()
        for line in lines:
            self.root = Tk.Tk()
            Tk.Button(self.root, text= line, command='callback').pack()
            self.root.update()
            time.sleep(5)
            #self.root.mainloop()
            self.root.destroy()

    def loop(self):
        #if self.root:
            #self.root.destroy()
        #time.sleep(self.hide)
        self.new()
        #self.root.mainloop()
        return

Window().loop()

当我运行它时,它用第一行创建一个窗口,持续5秒,然后用下一行创建一个新窗口,依此类推。您可能希望包含关闭检查,因为由于使用update()而不是mainloop(),退出按钮将不起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41986740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档