Dwa przyciski, dwa różne sygnały, które można podłączyć do rożnych slotów dowolnego obiektu, ot cała filozofia.
Nie bardziej sensownego nie napiszę, bo za bardzo nie rozumiem tego ponglisha, a przede wszystkim dlatego, że nie ma kodu do skomentowania.
A najlepiej by było, jakbyś opisał co chcesz osiągnąć.
No nie chcę pisać nowej klasy na edita po prostu gdyż tu mam w większości gotowe funkcje.
void Adding::on_btnok_clicked()
{
database_open();
database_valid();
}
void Adding::database_valid()
{
if (db.open())
{
Supplies_menu sup1;
if (cho==1)
{
getName();
if (nm!="")
{
getAll();
database_add();
if(query.exec())
{
QMessageBox::information(this,"Adding to database","Succefully added");
accept();
}
else
QMessageBox::warning(this,"Adding to database","Could not add product to the database. Try again!");
}
else
{
ui->lnname->setStyleSheet(
"QLineEdit { "
"background-color:rgb(133, 133, 133);}");
QMessageBox::warning(this,"Adding product","Name can't be empty!");
}
database_close();
}/// IF CHO==1
else QMessageBox::critical(this,"Something gone wrong!","Try again later");
if (cho==2)
{
sup1.getSelectedRow(id);
}
}
else
{
QMessageBox::warning(this,"Connecting to database","Database connection failed");
}
}
Tu są voidy wywoływane już wewnątrz klasy w której chce sobie wybrać czy ma być edit czy add;
void Adding::database_add()
{
query.prepare("INSERT INTO produkty (name,notes,kcal,carbonates,proteins,fats,weight,date,img)"
"VALUES(?,?,?,?,?,?,?,?,?) ");
query.addBindValue(nm);
query.addBindValue(nt);
query.addBindValue(kc);
query.addBindValue(car);
query.addBindValue(pro);
query.addBindValue(fa);
query.addBindValue(wei);
query.addBindValue(dat);
query.addBindValue(icon);
}
void Adding::database_edit()
{
// int id;
query.prepare("UPDATE produkty (name,notes,kcal,carbonates,proteins,fats,weight,date,img)"
" SET VALUES(?,?,?,?,?,?,?,?,?) WHERE productid="+id /* TUTAJ WSTAWIĆ */ );
query.addBindValue(nm);
query.addBindValue(nt);
query.addBindValue(kc);
query.addBindValue(car);
query.addBindValue(pro);
query.addBindValue(fa);
query.addBindValue(wei);
query.addBindValue(dat);
query.addBindValue(icon);
}
A tu muszę jakoś zaznaczyć czy to jest ta jedynka czy dwójka i wysłać to do w/w klasy.
void Supplies_menu::on_btnadd_clicked()
{
add.setModal(true);
add.exec();
table_display();
}
I ten cho to jest int pochodzący z tej klasy Adding tylko że nie działa bo wartości nie dostaje to go na razie z kodu wywaliłem.