bueno, no voy a usar tu código tal cual, solo modifico y copio algunas cosas para dejarlo funcional y mostrarte como lo haría:
#-*- coding:utf-8 -*-
import tkinter as tk
from tkinter import ttk
LETRA = ("Vardana", 12)
class Ventana:
def __init__(self,principal):
self.principal = principal
self.apariencia()
self.bloquear()
def apariencia(self):
self.contenedor = tk.Frame(self.principal)
self.contenedor.place(x=5, y=85)
self.contenedor.config(width="416", height="213")
self.contenedor.config(bd=5)
self.contenedor.config(relief="ridge")
mensaje_epe = tk.Label(self.contenedor,text="E.P.E - Factura......$\t\t Kwh....$",font=LETRA)
mensaje_epe.place(x=5, y=10)
mensaje_gas = tk.Label(self.contenedor,text="Gas - Factura.........$\t\t M3......$",font=LETRA)
mensaje_gas.place(x=5, y=50)
mensaje_comuna = tk.Label(self.contenedor, text="Comuna..................$",font=LETRA)
mensaje_comuna.place(x=5, y=90)
mensaje_ceodal = tk.Label(self.contenedor, text="Ceodal....................$", font=LETRA)
mensaje_ceodal.place(x=5, y=130)
mensaje_cable = tk.Label(self.contenedor, text="Cable Max..............$",font=LETRA)
mensaje_cable.place(x=5, y=170)
entrada_epe_monto = tk.Entry(self.contenedor, font=(LETRA), width=10)
entrada_epe_monto.place(x=155, y=10)
entrada_epe_kwh = tk.Entry(self.contenedor, font=(LETRA), width=5)
entrada_epe_kwh.place(x=335, y=10)
entrada_gas_monto = tk.Entry(self.contenedor, font=(LETRA), width=10)
entrada_gas_monto.place(x=155, y=50)
entrada_gas_M3 = tk.Entry(self.contenedor, font=(LETRA), width=5)
entrada_gas_M3.place(x=335, y=50)
entrada_comuna = tk.Entry(self.contenedor, font=(LETRA), width=10)
entrada_comuna.place(x=155, y=90)
entrada_ceodal = tk.Entry(self.contenedor, font=(LETRA), width=10)
entrada_ceodal.place(x=155, y=130)
entrada_cable = tk.Entry(self.contenedor, font=(LETRA), width=10)
entrada_cable.place(x=155, y=170)
caja_botones = tk.Frame(self.principal)
caja_botones.place(x=5, y=305)
caja_botones.config(width="416", height="60")
caja_botones.config(bd=5)
caja_botones.config(relief="ridge")
boton_agregar = ttk.Button(caja_botones, text="Agregar",command=self.desbloquear)
boton_agregar.place(x=5, y=5, width=80, height=40 )
def bloquear(self):
for x in range(5,12):
self.contenedor.winfo_children()[x].config(state= "readonly")
def desbloquear(self):
for x in range(5,12):
self.contenedor.winfo_children()[x].config(state= "normal")
def centrar_Ventana(root):
w = 430
h = 375
ws = root.winfo_screenwidth()
hs = root.winfo_screenheight()
x = (ws/2) - (w/2)
y = (hs/2) - (h/2)
root.geometry('%dx%d+%d+%d' % (w, h, x, y))
def inicial():
raiz=tk.Tk()
raiz.title(" Servicios.")
centrar_Ventana(raiz)
ventana=Ventana(raiz)
mensaje_mes = tk.Label(raiz, text="Mes", font=(LETRA))
mensaje_mes.place(x=15, y=10)
raiz.mainloop()
if __name__=='__main__':
inicial()
Edito:
Dicho sea de paso, veo que estás intentando hacer aplicaciones mejores, por lo que te recomendaría dos cosas: 1) empezá a usar clases 2) tkinter sirve pero para aplicaciones de más nivel(y de menos también) es mejor aprender pyqt5 , si bien está pyqt6, todavía no encontré muchos ejemplos para que se puedan seguir, así que es solo siguiendo la documentación, en cambio pyqt5 está plagado de ejemplos.