У меня есть окно tkinker с кнопками date
и choose date
, которое я называю домашней страницей. Когда пользователь выбирает дату, я хочу, чтобы дата обновлялась на домашней странице. Я перенастроил выбранную дату в функции datecheck
. Затем я хочу обновить дату домашней страницы с датой возврата. Я не знаю, как сделать это возможным. Помогите мне с каким-нибудь решением.
Вот пример кода, который я написал:
from tkinter import *
from tkinter import ttk
from tkinter import scrolledtext
import time
import tkinter.messagebox
from datetime import datetime
import tkinter as tk
import sys
import os
from tkcalendar import Calendar, DateEntry
from datetime import date
import multiprocessing
def datecheck():
global date_string
root = Tk()
s = ttk.Style(root)
s.theme_use('clam')
def print_sel():
global date_string,timestamp
date_string =cal.selection_get()
date_string=date_string.strftime("%d-%b-%Y")
print("returned_date",date_string)
root.destroy()
today = date.today()
d = int(today.strftime("%d"))
m= int(today.strftime("%m"))
y =int(today.strftime("%Y"))
cal = Calendar(root,
font="Arial 14", selectmode='day',
cursor="hand1", day=d,month=m,year=y)
cal.pack(fill="both", expand=True)
ttk.Button(root, text="ok", command=print_sel).pack()
def homepage():
global date_string,timestamp
if date_string == "":
timestamp = datetime.now().strftime("%d-%b-%Y")
else:
timestamp = date_string
def close_window():
window.destroy()
window = Tk()
window.title("Status Uploader")
window.geometry('500x200')
Label(window,
text="Status Uploader",
fg="blue",
bg="yellow",
font="Verdana 10 bold").pack()
Label(window,
text="Date : {}".format(timestamp),
fg="red",
bg="yellow",
font="Verdana 10 bold").pack()
txt = scrolledtext.ScrolledText(window, width=60, height=9.5)
txt.pack()
button = Button(window, fg='white', bg='blue',
text="Choose Date", command=datecheck)
button.place(x=35, y=152)
button = Button(window, fg='white', bg='red',
text="Close", command=close_window)
button.place(x=405, y=152)
window.mainloop()
global date_string,timestamp
date_string = ""
homepage()
Скриншот:
datestring
? Знаете ли вы, что простое изменениеtimestamp
ничего не изменит на дисплее? - person Bryan Oakley   schedule 27.09.2019mainloop()
tkinter
(который должен вызываться, чтобы графический интерфейс мог обрабатывать пользовательские события) — это использовать универсальный виджетafter()
для планирования периодических вызовов к функции. - person martineau   schedule 27.09.2019multiprocessing
, и следуйте этому шаблону виджет календаря python - возвращает выбранную пользователем дату - person stovfl   schedule 27.09.2019homepage date
с моимreturned_date
- person crust salty   schedule 27.09.2019datecheck()
? У вас есть два= Tk()
, у вас должен быть только один. Rarad Почему использование нескольких экземпляров Tk не рекомендуется? - person stovfl   schedule 27.09.2019