Я сделал приложение с двумя формами.Qt5 | Функция w/Slot Not Working
Когда я нажимаю кнопку сохранения во второй форме, она обновляет запись БД и возвращается к первой форме. Я соединил эти две формы через сигнал-слот с этим кодом:
DruckerData.h
signals:
void btnSavePressed(QString printerName);
DruckerData.cpp
UiMainWindow frmMain;
connect(this,SIGNAL(btnSavePressed(QString)),&frmMain,SLOT(refreshSaved(QString)));
emit btnSavePressed(ui->ledit_druckerName->text());
this->hide();
UiMainWindow.h
public slots:
void refreshSaved(QString printerName);
UiMainWindow .cpp
void UiMainWindow::refreshSaved(QString printerName){
qDebug()<<"Updated: "<<printerName;
show_list(); //<<<<<<<<<<<<<<<<<<<<<< this function
}
show_list
void UiMainWindow::show_list(){
QList<DB_Printers_lvs> list;
DB_Printers_lvsTransporter t("LVS");
QString wc;
this->setCursor(Qt::WaitCursor);
wc = QString("where 1=1 order by nam_printer");
if (!t.load_dbPrinters_lvs_wc(&list,wc))
{
log()<< "get printers failed"<< wc << t.getLastError();
this->setCursor(Qt::ArrowCursor);
return;
}
ui.treeWidget->clear();
foreach (DB_Printers_lvs db, list)
{
QTreeWidgetItem *item = new QTreeWidgetItem(0);
printer_to_qtreewidgetitem(item, db);
ui.treeWidget->insertTopLevelItem(ui.treeWidget->topLevelItemCount(), item);
}
ui.treeWidget->header()->resizeSections(QHeaderView::ResizeToContents);
ui.bow_search->apply();
this->setCursor(Qt::ArrowCursor);
}
При нажатии кнопки на второй форме и первая форма показывает, что я вижу отладку писать Updated
с именем принтера, но проблема в том, как я могу позвонить или запустить этот FUNKTION show_list()
?
Спасибо за помощь.
Можем ли мы увидеть 'show_list();' –
я редактировал свой пост и добавил show_list – Pecurka
поставить тест QDebug в начале 'show_list()' а затем запустить. –