Mam pytanie bo szukam, szukam ale nie mogę w necie znaleźć (pewnie źle wpisuje). Jest gdzieś miejsce gdzie można zobaczyć wszystkie te klasy, całe i headery i cpp tak jak one są napisane?
W sensie te co includujemy typu chociażby ten QSortFilterProxyModel
Hmmm, nie spodziewałem się że to takie łatwe i wystarczy jedna linijka kodu.
Ale jest problem - o ile działa fajnie w tableViewie to już nie działa w funkcji wstawiającej QAction do QMenu a mianowicie nie mam jak zaimplementować tego bo jak dam na QSqlTableModel ->MySortFilterProxyModel to on już nie ma setTable i setFilter, tak samo jak moja klasa do wyświetlania tabeli z obrazami - dziedziczy z QIdentityProxyModel.
Próbowałem zrobić że QSqlTableModel -> MySortFilterProxyModel -> QSqlTableModel ale znowuż QSqlTableModel nie ma funkcji setSourceModel(). Jakiś pomysł?
void Product::searchConfigure()
{
QMenu *menu = new QMenu;
QAbstractItemModel *model = dbManager->getBaseProductsModel();
int max = model->rowCount();
for (int i=0; i<max;)
{
dbManager->getProductValuesFromDatabase(i,1);
QByteArray arrayX = dbManager->getByteArray();
QString nameX = dbManager->getName();
QImage imageX; imageX.loadFromData(arrayX);
QAction *action = new QAction;
action->setIcon(QIcon(QPixmap::fromImage(imageX)));
action->setText(nameX);
action->setVisible(true);
menu->addAction(action);
i++;
}
ui->btnsearsch->setMenu(menu);
}
bool DbManager::getProductValuesFromDatabase(int id, int table, QString name2)
{
QSqlQuery query(m_db);
// query.prepare("SELECT * FROM products WHERE productid=?");
MySqlTableModel *model = new MySqlTableModel(this,m_db);
// query.addBindValue(id);
//query.exec();
//model->mySetQuery(query);
if((table==0) && (name2==""))
{
model->setTable("products");
model->select();
model->setFilter("productid="+QString::number(id));
nm = model->record(0).value("name").toString();
nt = model->record(0).value("notes").toString();
kc = model->record(0).value("kcal").toInt();
carb = model->record(0).value("carbonates").toInt();
prot = model->record(0).value("proteins").toInt();
fat = model->record(0).value("fats").toInt();
wei = model->record(0).value("weight").toInt();
dat = model->record(0).value("date").toDate();
arr = model->record(0).value("img").toByteArray();
typ = model->record(0).value("type").toInt();
}
else if((table!=0) && (name2==""))
{
model->setTable("baseproducts");
model->setSort(2,Qt::AscendingOrder);
model->select();
nm = model->record(id).value("name").toString();
nt = model->record(id).value("notes").toString();
kc = model->record(id).value("kcal").toInt();
carb = model->record(id).value("carbonates").toInt();
prot = model->record(id).value("proteins").toInt();
fat = model->record(id).value("fats").toInt();
wei = model->record(id).value("weight").toInt();
dat = model->record(id).value("date").toDate();
arr = model->record(id).value("img").toByteArray();
typ = model->record(id).value("type").toInt();
}
else if((table!=0) && (name2!=""))
{
model->setTable("baseproducts");
model->select();
model->setFilter("name='"+name2+"'");
nm = model->record(0).value("name").toString();
nt = model->record(0).value("notes").toString();
kc = model->record(0).value("kcal").toInt();
carb = model->record(0).value("carbonates").toInt();
prot = model->record(0).value("proteins").toInt();
fat = model->record(0).value("fats").toInt();
wei = model->record(0).value("weight").toInt();
dat = model->record(0).value("date").toDate();
arr = model->record(0).value("img").toByteArray();
typ = model->record(0).value("type").toInt();
}
}