【问题标题】:Tkinter Date PickerTkinter 日期选择器
【发布时间】:2020-08-22 20:50:41
【问题描述】:

我正在使用 Tkinter 开发一个程序。我想创建 GUI 以选择开始日期和结束日期并基于此创建图表。到目前为止,我只有一个使用此代码的简单图表。附件是我的 csv 文件,我想为其创建从开始日期到结束日期的图表。例如,我想创建从 8 月 13 日到 8 月 15 日的图表。 非常感谢任何帮助。

enter image description here

import pandas
import matplotlib.pyplot as plt
from tkinter import *
from tkcalendar import *

PATH_CSV_FILE = f"Daily Sales\\daywisesale.csv"

data = pandas.read_csv(PATH_CSV_FILE)
plt.plot(data["Date"], data["Price"],color='red',marker='o',linestyle='--')


plt.xlabel("Date of Sale",fontsize=12)
plt.ylabel("Daily Sale Price",fontsize=14)
plt.title("Daily Sales Report Graph")
plt.grid(True,color='b')
plt.xticks(rotation=20)
plt.show()

【问题讨论】:

  • 您是否尝试使用两个tkcalendar.DateEntry 选择开始日期和结束日期并使用这两个日期过滤数据?
  • 还没试过,能不能帮帮我。
  • tkcalendar 与 tkinter 一起使用非常容易,这里包含一个示例

标签: matplotlib tkinter tkcalendar


【解决方案1】:

首先,您必须在终端中安装tkcalendar

pip install tkcalendar

这是 tkcalendars DateEntry 上的一个简单示例:

from tkinter import *
from tkinter import ttk
from tkcalendar import DateEntry

root = Tk()

e7 = DateEntry(root, values="Text", year=2020, state="readonly", date_pattern="yyyy-mm-dd")
e7.grid(row=1, column=1, padx=20, pady=5, sticky=W)

root.mainloop()

您也可以使用 tkcalendars Calendar:

from tkcalendar import Calendar

e7 = Calendar(root, values="Text", year=2020, state="readonly", date_pattern="yyyy-mm-dd")
e7.grid(row=1, column=1, padx=20, pady=5, sticky=W)

对于您的情况,您可以使用其中任意两个小部件来获取 (e7.selection_get()) 开始日期和结束日期,然后使用它。

这里是documentation 以获取有关小部件的更多信息

希望它消除了您的疑虑,如果您有错误,请告诉我

干杯

【讨论】:

  • " 不工作" 有什么错误吗?将它包含在 Q 中
  • 您能否指导我如何从 csv 文件中选择日期。 e7 = Calendar(root, values="Text", width=12, bg="darkblue", fg="white", year=2020, date_pattern="yyyy-mm-dd") e7.grid(row=1, column=1, padx=20, pady=5, sticky=W) e8 = Calendar(root, values="Text", width=12, bg="darkblue", fg="white", year=2020, date_pattern= "yyyy-mm-dd") e8.grid(row=1, column=1, padx=20, pady=5, sticky=W) startdate=e7.selection_get() enddate=e8.selection_get()
  • 恐怕csv 与这个 Q 无关(它在附近,tkcalendar)为什么不问一个新的 Q 并且有人可能会在那里提供帮助,这样这个答案就会集中在 @ 987654330@ 而不是 csv
猜你喜欢
  • 2011-05-25
  • 2014-04-22
  • 1970-01-01
  • 2021-07-28
  • 1970-01-01
  • 1970-01-01
  • 2012-09-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多