Как установить и отобразить всплывающие подсказки Dynami c в QT 5.12.4 LTS с использованием C ++ - PullRequest
0 голосов
/ 29 января 2020

Я разрабатываю генератор цитат для моего работодателя, который связан с базой данных 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";


} 
...