python - 将 tkcalendar DateEntry 添加到 tkinter GUI
问题描述
这是我的情况。我正在学习如何使用 python(我刚开始)用 Tkinter 创建一个 GUI。我的应用程序的一个要求是能够存储“DateEntry”,在调查时我遇到了 tkcalendar DateEntry。问题是 DateEntry 是作为一个类创建的,但我已经创建的窗口(GUI)也是一个类,我不知道如何将类 DateEntry 组合到创建主窗口的类客户端中,我认为这超出了我的知识范围. 当使用“Fecha Check-in”按钮时,我希望 DateEntry 显示在另一个 toplevel() 窗口中。谁能解释怎么做?
这是代码:
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()
解决方案
推荐阅读
- docker - Hyperledger Fabric:Orderer 客户端无法连接到 orderer.example.com
- r - 将半向量化转换为全矩阵的最聪明方法
- python-3.x - 在cmd中使用python3.5时的python脚本
- asp.net - 我的 .cshtml 页面打不开
- java - java.lang.NoSuchMethodError: org.apache.hive.service.cli.TableSchema
- javascript - Webpack javascript Object.assign 与“=”
- c++11 - 标准::地图
插入错误:base_class 是 derived_class 的不可访问基础 - json - 加入引号,逗号分隔的字符串(给定包含这些字符串的结构列表)
- google-apps-script - 谷歌表中的秒表功能可能吗?
- testng - 重试分析器和范围报告