Hola buenas tardes a todos...
tengo un inconveniente archivo (app.py) en el cual uno de sus botones tiene la funcion de abrir otra ventana (combo.py) donde cargo datos a dos combo box, ahora si corro combo.py directamente los datos ingrsados en el line edit se guardan en la base de datos pero si corro app.py y llamo a la ventana combo desde ahi al ingresar datos en el line edit y presionar el boton correspondiente no pasa nada, ni siquiera recibo un error.
Por ahi el codigo no sea muy eficiente o haya cosas de mas, peo recien llevo dos meses asi que ire mejorando eso tamien...
ahi les dejo el codigo si me ayudan orientandome por donde ir se los agradecere...
app.py:
combo.py:
tengo un inconveniente archivo (app.py) en el cual uno de sus botones tiene la funcion de abrir otra ventana (combo.py) donde cargo datos a dos combo box, ahora si corro combo.py directamente los datos ingrsados en el line edit se guardan en la base de datos pero si corro app.py y llamo a la ventana combo desde ahi al ingresar datos en el line edit y presionar el boton correspondiente no pasa nada, ni siquiera recibo un error.
Por ahi el codigo no sea muy eficiente o haya cosas de mas, peo recien llevo dos meses asi que ire mejorando eso tamien...
ahi les dejo el codigo si me ayudan orientandome por donde ir se los agradecere...
app.py:
Código:
import sys
from PySide6 import QtWidgets
from mysql import connector
from mysql.connector.optionfiles import DEFAULT_EXTENSIONS
from database.connection import create_connection
from PySide6.QtWidgets import QApplication, QMainWindow, QWidget, QTableWidgetItem, QDialog
from database import recipes as dat
from views.main_window import MainWindow
from combo import MainWindowCombo
from database import baseCombo as BC
class MainWindowForm (QMainWindow, QDialog, MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
#self.leer_bd()
self.inicio()
self.boton_agregar.clicked.connect(self.agregar)
self.boton_agregar.clicked.connect(self.inicio)
self.boton_actualizar.clicked.connect(self.leer_bd)
self.boton_editar.clicked.connect(self.edit_tabla)
self.boton_editar.clicked.connect(self.inicio)
self.boton_eliminar.clicked.connect(self.borra_tabla)
self.boton_eliminar.clicked.connect(self.inicio)
self.boton_actualizar.clicked.connect(self.combo_ventana)
def combo_ventana(self):
self.ventana = QtWidgets.QMainWindow()
self.ui=MainWindowCombo()
self.ui.setupUi(self.ventana)
self.ventana.show()
def leer_bd(self):
conn = create_connection()
sql = """SELECT id, articulo, cantidad, talle, color, costo, ganancia, precio FROM nombre"""
try:
cur = conn.cursor()
cur.execute(sql)
DatosBase = cur.fetchall()
row = 0
for i, (id, articulo, cantidad, talle, color, costo, ganancia, precio) in enumerate (DatosBase):
self.productos_table_widget.setRowCount(row+1)
self.productos_table_widget.setItem(i, 0, QTableWidgetItem(str(id)))
self.productos_table_widget.setItem(i, 1, QTableWidgetItem(str(articulo)))
self.productos_table_widget.setItem(i, 2, QTableWidgetItem(str(cantidad)))
self.productos_table_widget.setItem(i, 3, QTableWidgetItem(str(talle)))
self.productos_table_widget.setItem(i, 4, QTableWidgetItem(str(color)))
self.productos_table_widget.setItem(i, 5, QTableWidgetItem(str(costo)))
self.productos_table_widget.setItem(i, 6, QTableWidgetItem(str(ganancia)))
self.productos_table_widget.setItem(i, 7, QTableWidgetItem(str(precio)))
row +=1
#return DatosBase
except connector.Error as err:
print(f"Error at select_all function: {err.msg}")
return False
finally:
cur.close()
conn.close()
def agregar(self):
articulo = self.articulo_line_edit.text()
cantidad = self.cantidad_line_edit.text()
talle = self.combo_talle.currentText()
color = self.combo_color.currentText()
costo = self.costo_line_edit.text()
ganancia = self.ganancia_line_edit.text()
precio = float(costo) * float(ganancia) /100 + float(costo)
data = (articulo, int(cantidad), str(talle), color, float(costo), float(ganancia), float(precio))
copia = (articulo, talle, color)
if dat.insert(data, copia):
print("articulo agregado")
self.clear_inputs()
def edit_tabla(self):
articulo = self.articulo_line_edit.text()
costo = self.costo_line_edit.text()
UpTabla = (float(costo), articulo)
CostoArt = (float(costo), articulo)
if dat.editar(UpTabla, CostoArt):
print("articulo editado")
self.clear_inputs()
def clear_inputs(self):
self.articulo_line_edit.clear()
self.cantidad_line_edit.clear()
self.costo_line_edit.clear()
self.ganancia_line_edit.clear()
self.precio_line_edit.clear()
def borra_tabla (self):
articulo = self.articulo_line_edit.text()
talle = self.combo_talle.currentText()
color = self.combo_color.currentText()
delT = (articulo, talle, color)
if dat.borrar(delT):
print("articulo borrado")
self.clear_inputs()
def inicio(self):
c = 0
while c == 0:
self.leer_bd()
c+=1
if __name__ == '__main__':
app = QApplication()
app.setStyle('Fusion')
window = MainWindowForm()
window.show()
sys.exit(app.exec())
combo.py:
Código:
import sys
from mysql import connector
from PySide6.QtWidgets import QApplication, QDialog, QMainWindow
from views.creacion_window import MainWindow
from database import baseCombo as BC
class MainWindowCombo(QMainWindow, QDialog, MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.agreg_talle_boton.clicked.connect(self.insert_combo_color)
self.agrega_color_boton.clicked.connect(self.insert_combo_color)
def insert_combo_color(self):
color = self.crea_color_le.text()
coloroculto = self.crea_color_le.text()
#self.combo_talle.addItem(talle)
data = (color, coloroculto)
if BC.insert_color(data):
print("articulo agregado")
self.clear_inputs()
def clear_inputs(self):
self.crea_talle_le.clear()
self.crea_color_le.clear()
if __name__ == '__main__':
app=QApplication()
app.setStyle('Fusion')
window = MainWindowCombo()
window.show()
sys.exit(app.exec())