Documentos de Académico
Documentos de Profesional
Documentos de Cultura
import tkinter as tk
import xml.etree.ElementTree as ET
class maquinas:
def __init__(self):
self.mp = tk.Tk()
self.mp.title('Practica_1')
self.mp.geometry('670x450')
self.mp['bg'] = '#e0b0ff'
tree = ET.parse('archi_prueba.xml')
root = tree.getroot()
cont = 0
lista_elementos = root.find('listaMaquinas')
if lista_elementos.findall('Maquina') != None:
frame1 = tk.Frame(self.mp)
frame2 = tk.Frame(self.mp)
frame3 = tk.Frame(self.mp)
frame1.pack(side='left', padx=10, pady=10)
frame2.pack(side='left', padx=10, pady=10)
frame3.pack(side='left', padx=10, pady=10)
if i < 5:
subArchivo.pack(side='top', padx=10, pady=10, in_=frame2)
elif i >= 5 and i < 10:
subArchivo.pack(side='top', padx=10, pady=10, in_=frame1)
elif i<15:
subArchivo.pack(side='top', padx=10, pady=10, in_=frame3)
else:
print("Error")
subArchivo.config(command=lambda elemento=elemento:
self.irPines1(elemento))
else:
print("Ya no existen mas maquinas")
self.mp.mainloop()
pines_maquina = []
for pin in elemento.findall('pin'):
elementos_pin = [elemento.text for elemento in
pin.findall('elementos/elemento')]
pines_maquina.append(elementos_pin)
elementos_xml = []
tree = ET.parse('archi_prueba.xml')
root = tree.getroot()
for elemento_xml in root.findall('listaElementos/elemento'):
elementos_xml.append(elemento_xml.find('simbolo').text)
compuestos = root.findall('listaCompuestos/compuesto')
for compuesto in compuestos:
elementos_compuesto = compuesto.find('elementos')
nombre_compuesto = compuesto.find('nombre').text
num_pines = int(elemento.find('numeroPines').text)
num_elementos = int(elemento.find('numeroElementos').text)
class TablaPines:
self.window = tk.Toplevel()
self.window.title(f"Pines de la máquina
{self.maquina.find('nombre').text}")
self.window.geometry("400x300")
self.window['bg'] = '#e0b0ff'
self.Crear_Tabla()
def get_pin_values(self):
pines_maquina = []
for pin in self.maquina.findall('pin'):
elementos_pin = [elemento.text for elemento in
pin.findall('elementos/elemento')]
pines_maquina.append(elementos_pin)
return pines_maquina
def Crear_Tabla(self):
for i in range(self.num_pins):
for j in range(len(self.pin_values[i])):
cell = tk.Label(self.table_frame, text=self.pin_values[i][j],
bg="white", width=8, height=3, font=("Courier New", 10))
cell.grid(row=j, column=i, padx=2, pady=2)
if j == 0:
cell.config(bg="gray")
compuestos = self.maquina.findall('../listaCompuestos/compuesto')
for compuesto in compuestos:
nombre_compuesto = compuesto.find('nombre').text
elementos_compuesto = compuesto.find('elementos')
elementos = [e.text for e in elementos_compuesto.findall('elemento')]
if set(elementos).issubset(set(sum(self.pin_values, []))):
boton = tk.Button(self.window, text=nombre_compuesto,
command=lambda elementos=elementos: self.mostrar_elementos(elementos))
boton.pack(pady=5)