Добавление tkcalendar DateEntry в tkinter GUI - PullRequest
1 голос
/ 26 мая 2020

это моя ситуация. Я учусь использовать python (я только начал) для создания GUI с Tkinter. Одно из требований моего приложения - иметь возможность хранить «DateEntry», при исследовании я столкнулся с tkcalendar DateEntry. Проблема в том, что DateEntry создается как класс, но мое уже созданное окно (GUI) также является классом, и я не знаю, как объединить класс DateEntry с моим клиентом класса, который создает главное окно, я думаю, что это выходит за рамки мои знания. Я хочу, чтобы DateEntry отображался в другом окне toplevel () при использовании кнопки «Fecha Check-in». Кто-нибудь может объяснить, как это сделать?

это изображение

Это код:

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()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...