我是python的新手,我正在构建一个简单的时区应用程序,其中有朗姆酒,使其成为状态栏应用程序和py2app,用于打包,其中我显示了几个不同的时区,并希望使用刷新按钮来重新加载时间显示。
我已阅读有关使用
import importlib
重新加载模块,但我不清楚如何在rumps库中使用此方法。
这是我当前的脚本:
import rumps
import datetime
import pytz
import os
import sys
import importlib
class TimeZone(object):
def __init__(self):
super(TimeZone, self)
self.config = {
"app_name": "TimeZone",
"ld_current_time" : "London " + datetime.datetime.now(pytz.timezone('Europe/London')).strftime('%I:%M %p'),
"ny_current_time" : "New York " + datetime.datetime.now(pytz.timezone('US/Eastern')).strftime('%I:%M %p') ,
"la_current_time" : "Los Angeles " + datetime.datetime.now(pytz.timezone('US/Pacific')).strftime('%I:%M %p'),
}
self.app = rumps.App(self.config["app_name"])
self.ld = rumps.MenuItem(title=self.config["ld_current_time"],callback='')
self.ny = rumps.MenuItem(title=self.config["ny_current_time"],callback='')
self.la = rumps.MenuItem(title=self.config["la_current_time"],callback='')
self.set_up_menu()
def set_up_menu(self):
self.app.title = "⏳"
self.app.menu = [self.ld,self.ny,self.la]
@rumps.clicked('Refresh')
def refresh(self):
print('refresh')
rumps.MenuItem.update(self.app.menu,1)
#self.menu.update = [self.ld,self.ny,None,self.la,None]
def run(self):
self.app.run()
if __name__ == '__main__':
app = TimeZone()
app.run()
任何输入将不胜感激。干杯!
答案 0 :(得分:0)
我通过使用内置的os和sys python模块解决了这个问题:
@rumps.clicked('restart')
def restart(self):
print('restarted')
os.execl(sys.executable, sys.executable, * sys.argv)