【发布时间】:2018-03-29 20:38:27
【问题描述】:
在打开主应用程序窗口之前,我的应用程序有两个单独的对话窗口。我无法弄清楚如何从黑色 python 屏幕中打开第二个对话框窗口(日历)(我为我不知道名称的无知道歉)。
“运行日期”中包含的消息框首先打开。如果选择“否”,则会打开 app_window。隐藏的是 app_window
conn = pyodbc.connect('Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq='+db)
cur = conn.cursor()
app_window = tk.Tk()
app_window.geometry("1x1+0+0")
app_window.overrideredirect(True)
app_window.transient()
def rundate():
result = tkinter.messagebox.askyesno(title="Rundate", message="back 7 days?")
if result == True:
end = date.today()
start = date.today() - timedelta(7)
daterange = [pd.date_range(start, end)]
for single_date in daterange:
x = single_date.strftime("%m/%d/%Y")
rundate = x
print(rundate)
return rundate
else:
app_window.wm_title("Pick1")
app_window.geometry("250x150+100+100")
app_window.overrideredirect(False)
#app_window.mainloop()
cm = pick1.CalendarFrame(app_window)
cm.grid()
app_window.wait_variable(cm.wait_for_result)
return cm.rundate
rundate = rundate()
print(rundate)
然后是一大堆查询代码等等
在消息框返回“是”或从日历中选择日期后,界面将启动
# Initiate interface
root = Tk()
master = Frame(root, name='master')
master.pack(fill=BOTH)
root.geometry("800x800+300+100")
root.title('WeeklyReport')
menu_bar = Menu(root)
def exit():
root.destroy()
root.wait_window
【问题讨论】:
-
请尝试创建minimal reproducible example。仅使用一些脱节的 sn-ps 很难诊断。不过,看起来可疑的一件事是,您正在创建不止一个
Tk实例,这通常是现在 tkinter 的设计用途。 -
很抱歉我会改进它,但这是一个非常长的脚本,我遗漏了血淋淋的细节。 app_window 是代码的新增内容,所以我认为你是正确的,因为 Tk 实例太多
-
我们不需要你的整个脚本。我们需要一个专门针对这个问题编写的小程序。
标签: python-3.x tkinter tk