如何使python脚本重复运行

2024-09-28 23:19:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个简单的脚本,可以将一些值保存到数据库中,我还有一个内置的窗口。所以基本上我的问题是我希望savebase()函数被连续调用,直到窗口保持打开状态。如何做到这一点?在

到目前为止,我只能运行一次函数,当窗口自动打开时。我也可以放一个按钮来重复,但这并不能解决这个问题,因为我希望这件事每秒做2次。在

我尝试的简化版本如下:

     import Tkinter
     import saveDB

     def doing_it():
          a = saveDB.save()
          a.savebase()

     window = Tkinter.Tk()
     window.title("Saving Database")
     window.geometry("300x300+100+100")


     first_button=Tkinter.Button(window, text='Save DB', command=doing_it,
                                fg='white', bg='black').grid(row=3,column=2)

     window.mainloop()

如果name==main(),那么方法是什么?在我寻找上述问题的过程中,我遇到了它,尽管我对此一无所知。在


Tags: 函数import版本脚本数据库tkinter状态def
2条回答

你在评论中有一个后续问题,我没有足够的代表来评论,所以我就把这个留在这里。在

你说你将文本分配给一个标签,但它没有更新。我不能百分之百地肯定你的意思,但这里有一个我正在做的工作的例子,它也应该对你有用。在

#! /usr/bin/env python3.4
from tkinter import *
import time

GLOBVAR = 0
class App(Tk):
    def __init__(self):
        Tk.__init__(self)
        self.geometry("300x300+500+200")
        self.wm_title("Test update label")
        self.label = Label(text="you  won't see this")
        self.label.pack(pady = (150, 0)) 
        self.update_clock()

    def update_clock(self):
        global GLOBVAR
        GLOBVAR += 1
        self.label.configure(text = GLOBVAR)
        self.after(1000, self.update_clock)

app=App()
app.mainloop()

在这种情况下,更新label小部件的关键部分是 self.label.configure()呼叫。在

使用after-方法:

def doing_it():
     a = saveDB.save()
     a.savebase()
     window.after(500, doing_it)

 window = Tkinter.Tk()
 window.title("Saving Database")
 window.geometry("300x300+100+100")
 window.after(500, doing_it)
 window.mainloop()

相关问题 更多 >