Я разрабатываю генератор цитат для моего работодателя, который связан с базой данных mysql. Мой босс решил, что хочет иметь возможность навести курсор на флажки и переключатель и заставить программу показывать цену во всплывающей подсказке прямо из базы данных. Поскольку существует также вероятность того, что эти цены будут обновлены, важно, чтобы подсказки отражали эти обновленные данные. Кроме того, я стараюсь избегать и программировать каждый флажок и переключатель отдельно. Я прилагаю свой код, который у меня есть, и сейчас не могу понять, почему он не работает.
QSqlQuery query;
query.exec("TRUNCATE TABLE quoteTableTemp");
//Here we need to iterate list of widgets and then assign the pricing tooltip
for(int k = 0; k<listOfWidgets.count(); k++){
qDebug() << "Looking at " << listOfWidgets.at(k)->objectName();
query.exec("SELECT * FROM quoteTable where name = '"+listOfWidgets.at(k)->objectName()+"'");
query.last();
QString connectionName = query.value(2).toString();
qDebug() <<"The connection name is " << connectionName;
query.exec("SELECT * FROM quoteItems WHERE name = '"+connectionName+"'");
query.last();
int price = query.value(2).toInt();
qDebug() << "the price is " << price;
listOfWidgets.at(k)->setToolTip("$"+QString::number(price));
qDebug() << "The real name is " << listOfWidgets.at(k)->objectName();
if(MainWindow::findChild<QCheckBox *>("drivePulleyCheckBox")){
qDebug() << "set checkbox tooltip";
MainWindow::findChild<QCheckBox *>("drivePulleyCheckBox")->setToolTip("$"+QString::number(price));
}
else if(MainWindow::findChild<QRadioButton *>(listOfWidgets.at(k)->objectName())){
qDebug() << "set radiobutton tooltip";
MainWindow::findChild<QRadioButton *>(listOfWidgets.at(k)->objectName())->setToolTip("$"+QString::number(price));
}
qDebug() << "setting tooltips";
}