将tkcalendar DateEntry添加到tkinter GUI

2024-05-16 11:05:53 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的处境。我正在学习如何使用python(我刚刚开始)用Tkinter创建GUI。我的应用程序的一个要求是能够存储“DateEntry”,同时调查我遇到的tkcalendar DateEntry。问题是DateEntry是作为一个类创建的,但我已经创建的窗口(GUI)也是一个类,我不知道如何将类DateEntry组合到创建主窗口的类客户端中,我认为这超出了我的知识范围。我希望在使用“Fecha签入”按钮时,在另一个toplevel()窗口中显示一个日期条目。有人能解释一下怎么做吗

this is the image

代码如下:

from tkcalendar import DateEntry
from datetime import date
from tkinter import ttk
from tkinter import *
import sqlite3


#year = datetime.date.today().year
#month = datetime.date.today().month

class client:
  def __init__(self, window):
    self.wind = window
    self.wind.title('Start Bits CheckIn-CheckOut')
    #self.wind.columnconfigure(0, weight = 1)
    #self.wind.rowconfigure(0, weight = 1)
    #self.wind.geometry("330x300")
    frame_2 = Label(self.wind, text = 'Registro de huéspedes')
    frame_2.grid(row = 0, column = 0, pady = 5)
#
    frame = LabelFrame(self.wind, text = 'Datos personales', borderwidth=4, relief="raised")
    frame.grid(row = 1, column = 0, columnspan = 10, pady = 2, sticky = W + E)
#
#    #label ID
    L_ID = Label(frame, text = 'Cédula: ').grid(row = 1, column = 0, padx = 1, pady = 1)
    self.ID = Entry(frame, width = 25)
    self.ID.focus()
    self.ID.grid(row = 1, column = 1, columnspan = 2)
    #label Nombre
    L_name = Label(frame, text = 'Nombres: ').grid(row = 2, column =0, padx = 1, pady = 2)
    self.nombre = Entry(frame, width = 25)
    self.nombre.grid(row = 2, column = 1, columnspan = 2)
    #label last
    L_last = Label(frame, text = 'Apellidos: ').grid(row = 3, column = 0, padx = 1, pady = 2)
    self.last = Entry(frame, width = 25)
    self.last.grid(row = 3, column = 1, columnspan = 2)
    #label contact phone
    L_phone = Label(frame, text = 'Teléfono: ').grid(row = 4, column = 0, padx = 1, pady = 2)
    self.phone = Entry(frame, width = 25)
    self.phone.grid(row = 4, column = 1, columnspan = 2)
    #label email
    L_mail = Label(frame, text = 'Email: ').grid(row = 5, column = 0, padx = 1, pady = 2)
    self.mail = Entry(frame, width = 25)
    self.mail.grid(row = 5, column = 1, columnspan = 2)
    #label CheckIn
    L_ChkIN = Label(frame, text = 'Check-In: ').grid(row = 6, column = 0, padx = 1, pady = 5)
    ttk.Button(frame, text = 'Fecha Check-In', command = self.fecha_In).grid(row = 6, column = 2)
    #label CheckOut
    L_ChkOut = Label(frame, text = 'Check-Out').grid(row = 7, column = 0, padx = 1, pady = 5)
    #button registrar
    ttk.Button(frame, text = 'Registrar' ).grid(row = 2, column = 6, padx = 10)
    #button actualizar
    ttk.Button(frame, text = 'Actualizar').grid(row = 4, column = 6, padx = 10)

  def fecha_In(self):
    self.fecha_in = Toplevel()
    self.fecha_in.title = 'Fecha Check-In'

if __name__ == '__main__':
  window = Tk()
  style = ttk.Style(window)
  style.theme_use('clam')


  alien = PhotoImage(file = "Start Bits.png")
  fondo = Label(window, image = alien).grid(row = 8, column = 0)

  application = client(window)
  window.mainloop()


Tags: textimportselfcolumnwindowframelabelgrid