gpt4 book ai didi

Python Tkinter ttk 日历

转载 作者:行者123 更新时间:2023-11-28 22:21:32 25 4
gpt4 key购买 nike

我正在尝试为日期条目创建一个下拉日历。以下是我的部分代码:

它的下拉部分不起作用,我似乎无法在任何地方找到 ttk 日历的 DateEntry() 语法来包含日历小部件选项!

#creating the frame 
from tkinter import *
from tkcalendar import *

root = Tk()

f1=Frame(root,width=1500,height=100,relief=SUNKEN,bd=4,bg='light steel blue')
f1.pack(side=TOP)
f2=Frame(root,width=1500,height=550,relief=SUNKEN,bd=4,bg='white')
f2.pack()
f3=Frame(root,width=1600,height=100,relief=SUNKEN,bd=4,bg='white')
f3.pack(side=BOTTOM)


#Creating the date column
l4=Label(f2,text='DATE',font=('tahoma',20,'bold'),fg='black',anchor='w')
l4.grid(row=0,column=3)

cal=DateEntry(f2,dateformat=3,width=12, background='darkblue',
foreground='white', borderwidth=4,Calendar =2018)
cal.grid(row=1,column=3,sticky='nsew')

我希望它看起来像这样: screenshot

最佳答案

更新:我已经解决了这个问题并发布了新版本 tkcalendar .

编辑:问题是在 Windows 中,单击向下箭头按钮时不会打开下拉菜单。它似乎来自 Windows 的默认 ttk 主题,因为它可以与其他主题一起使用。因此,解决方法是切换主题并使用例如“clam”(“alt”也应该有效)。同时,我会研究它,看看是否可以修复其他主题的 DateEntry 并发布新版本 ( https://github.com/j4321/tkcalendar/issues/3 )。

我不确定你想用 DateEntry 实现什么,但如果你的目标是让它看起来像图片中的那个,可以通过以下方式完成:

import tkinter as tk
from tkinter import ttk
from tkcalendar import DateEntry
from datetime import date

root = tk.Tk()
# change ttk theme to 'clam' to fix issue with downarrow button
style = ttk.Style(root)
style.theme_use('clam')

class MyDateEntry(DateEntry):
def __init__(self, master=None, **kw):
DateEntry.__init__(self, master=None, **kw)
# add black border around drop-down calendar
self._top_cal.configure(bg='black', bd=1)
# add label displaying today's date below
tk.Label(self._top_cal, bg='gray90', anchor='w',
text='Today: %s' % date.today().strftime('%x')).pack(fill='x')

# create the entry and configure the calendar colors
de = MyDateEntry(root, year=2016, month=9, day=6,
selectbackground='gray80',
selectforeground='black',
normalbackground='white',
normalforeground='black',
background='gray90',
foreground='black',
bordercolor='gray90',
othermonthforeground='gray50',
othermonthbackground='white',
othermonthweforeground='gray50',
othermonthwebackground='white',
weekendbackground='white',
weekendforeground='black',
headersbackground='white',
headersforeground='gray70')
de.pack()
root.mainloop()

我创建了一个继承自 DateEntry 的类,以在日历下方添加带有今天日期的标签,并在下拉列表周围创建一个黑色边框(self._top_cal 是包含日历的 Toplevel)。

然后,我创建了一个 MyDateEntry 实例,并添加了使它看起来像图片所需的所有日历选项。此外,我使用了 yearmonthday 选项来定义条目中的初始日期。这是结果:

screenshot

关于Python Tkinter ttk 日历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48298195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com