Calendar und SpinTimePickerModern lassen sich nicht mit dem Geometriemanager Grid platzieren
Verfasst: Donnerstag 21. März 2024, 11:11
Hallo,
ich möchte mir hier einen DateTime-Picker basteln und versuche gerade sowohl den Kalender, als auch die Uhr in ein Frame zu packen. Beides lässt sich auch problemlos mit grid positionieren. Wenn ich jedoch ein Label darin ebenfalls mit grid platzieren möchte, sind die beiden Objekte dann übereinander (siehe Bild). Woran lieg das und wie behebe ich das Problem?
![Bild](https://ibb.co/JKxnqkH)
ich möchte mir hier einen DateTime-Picker basteln und versuche gerade sowohl den Kalender, als auch die Uhr in ein Frame zu packen. Beides lässt sich auch problemlos mit grid positionieren. Wenn ich jedoch ein Label darin ebenfalls mit grid platzieren möchte, sind die beiden Objekte dann übereinander (siehe Bild). Woran lieg das und wie behebe ich das Problem?
Code: Alles auswählen
import tkinter as tk
from tkinter import ttk
from tktimepicker import SpinTimePickerModern
from tktimepicker import constants
from tkcalendar import Calendar
class Date_Time_Picker(ttk.Frame):
def __init__(self, container, name):
super().__init__(container)
self.name = name
self.__create_widgets(self.name)
def __create_widgets(self, name):
self.name = name
self.header = ttk.Label(text=self.name)
self.header.grid(row=0, column=0)
self.time_picker = SpinTimePickerModern(self)
self.time_picker.addAll(constants.HOURS24) # adds hours clock, minutes and period
self.time_picker.configureAll(bg="#404040",
height=1, fg="#ffffff",
font=("Times", 16),
hoverbg="#404040",
hovercolor="#d73333",
clickedbg="#2e2d2d",
clickedcolor="#d73333")
self.time_picker.configure_separator(bg="#404040",
fg="#ffffff")
self.time_picker.grid(row=1, column=0)
self.cal = Calendar(self,
selectmode = 'day',
year = 2020,
month = 5,
day = 22)
self.cal.grid(row=2, column=0)
for widget in self.winfo_children():
widget.grid(padx=5, pady=5)
class App(tk.Tk):
def __init__(self):
super().__init__()
self.title('Replace')
self.__create_widgets()
def __create_widgets(self):
input_frame = Date_Time_Picker(self, 'start')
input_frame.grid(column=0, row=0)
if __name__ == "__main__":
app = App()
app.mainloop()