Почему при нажатии кнопки появляются пробелы для моего tkinter python clock - PullRequest
0 голосов
/ 18 июня 2020

Это часы, которые я только недавно запустил, я хочу, чтобы кнопка имела все функции, такие как будильник и часы. Я сделал это, но когда я нажимал кнопку, появлялись пробелы, и заголовок сдвигался вправо с небольшим отступом. и в целом дизайн слишком странный, так как я только что перешел на tkinter, я мало что узнал о фреймах.

import time
import tkinter as tk

#Initialise the window
clock = tk.Tk()
clock.title('Easy CLock')
clock.geometry('400x700')
clock.configure(bg='#121212')

border_effects = {
    "flat": tk.FLAT,
    "sunken": tk.SUNKEN,
    "raised": tk.RAISED,
    "groove": tk.GROOVE,
    "ridge": tk.RIDGE,
}

#Time and Date function
def time_date():
    # current time
    current_time = time.strftime('%H:%M:%S')
    current_date = time.strftime(r'%m/%d/%Y')
    clock.after(200, time_date)
    #Displays the time
    c_time = tk.Label(f_time, text = current_time, fg='white', bg='#121212', font=('Verdana', 30))
    c_date = tk.Label(f_time, text = current_date, font=('Verdana', 10), fg='white', bg='#121212')
    c_time.grid(column=0, row=1)
    c_date.grid(column=0, row=2)

#alarm button command
def alarm_func():
    c_clicked = tk.Label(text='Alarm Interface', fg='white', bg='#121212')
    c_clicked.grid(column=0, row=1)


#Creating Frames
f_header = tk.Frame(clock) #Header
f_time = tk.Frame(clock)  #Clock Button
f_alarm = tk.Frame(clock) #Alarm Buttton
f_exit = tk.Frame(clock) #Exit button

#Setting the Frames with grid
f_header.grid(column=0 , row=0, columnspan = 3)
f_time.grid(column=0, row =3)
f_alarm.grid(column=1, row=3)
f_exit.grid(column=2, row =3)

#Setting label in the frame
f_lbl = tk.Label(f_header, text='Simplistic Clock', font=('Verdana', 30),fg='white', bg='#121212') # Purple text
time_but = tk.Button(f_time, text='Clock', command= time_date, bg='#f39c12', width = 15, relief = border_effects['ridge'])
alarm_but = tk.Button(f_alarm, text = 'Alarm', command = alarm_func, bg='#f39c12', width = 15, relief = border_effects['ridge'])
quit_but = tk.Button(f_exit, text='Exit', command = clock.quit, bg='#f39c12', width = 15, relief = border_effects['ridge'])



#Putting it on the frames
f_lbl.grid()
time_but.grid()
alarm_but.grid()
quit_but.grid()


clock.mainloop()

также, я хочу скрыть часы, если нажата кнопка будильника, например, если пользователь сначала нажмет кнопку часов, он отобразит код, но когда пользователь решит нажать кнопку будильника Я хочу, чтобы рамка часов была скрыта. Я устал от пользователя .grid_forget (), но у меня он не работает. Я не уверен, как работают фреймы и сетка.

имеет ли фрейм свой собственный столбец и сетку, поскольку в каждом кадре начальным будет столбец = 0, строка = 0 или он следует за родительским окном.

...