Quantcast
Channel: Форум программистов и сисадминов Киберфорум
Viewing all articles
Browse latest Browse all 514769

заполнение qtablewidget runtime - Qt

$
0
0
есть проект, в нем обрабатывает внешняя библиотека, у которой есть функции обратного вызова. когда происходит событие функция обратного вызова возвращает данные, эти данные передаются в другую функцию, а от туда через emit отправляются в слот для добавления этих данных в qtablewidget. данные передаются по цепи, но в таблицу не заносятся. в чем может быть проблема?
р.s. если что нибудь добавить в таблицу по нажатию кнопки то все ок
передача сигнала
:

void sig_slot::some_func(int x, int y, char *z) //статическая функция для обратного вызова
{
    qDebug()<<"some_func"<<x<<y<<z; //показывает что получены данные
    sig_slot *pmw=new sig_slot;
    pmw->get_table(z,y,z);//передаем
}
void sig_slot::get_table(int x, int y, char *z)
{
    emit send_test(x, y, z); //слот
}

заполнение таблицы:
:

void sig_slot::send_test( int x, int y, char *z)
{

    QDateTime dt = QDateTime::currentDateTime();
    int row = tableWidget->rowCount();
          tableWidget->insertRow(row);
          tableWidget->setColumnCount(4);

          QTableWidgetItem* item_dt = new QTableWidgetItem { dt.toString("dd.MM.yy hh.mm.ss") };
          item_dt->setBackground(Qt::red);
          tableWidget->setItem(row, 0, item_dt);
     

          QTableWidgetItem* item_ch = new QTableWidgetItem { QString::number(x)};
          item_ch->setBackground(Qt::green);
        tableWidget->setItem(row, 1, item_ch);

          QTableWidgetItem* item_wt = new QTableWidgetItem { QString::number(y)};
          item_wt->setBackground(Qt::red);
          tableWidget->setItem(row, 2, item_wt);

          QTableWidgetItem*item_pn = new QTableWidgetItem {QString::fromLocal8Bit(z)};
          item_pn->setBackground(Qt::green);
          tableWidget->setItem(row, 3, item_pn);
          qDebug()<<"func"<<x<<y<<z; //показывает что данные были переданы
}

а так все работает:
:

connect(button, &QPushButton::clicked, this, &sig_slot::t_table);

void sig_slot::t_table()
{
    QDateTime dt = QDateTime::currentDateTime();
    int row = tableWidget->rowCount();
          tableWidget->insertRow(row);
          tableWidget->setColumnCount(4);

          QTableWidgetItem* item_dt = new QTableWidgetItem { dt.toString("dd.MM.yy hh.mm.ss") };
          item_dt->setBackground(Qt::red);
          tableWidget->setItem(row, 0, item_dt);s.

          QTableWidgetItem* item_ch = new QTableWidgetItem { "test2"};
          item_ch->setBackground(Qt::green);
        tableWidget->setItem(row, 1, item_ch);

          QTableWidgetItem* item_wt = new QTableWidgetItem { "test2"};
          item_wt->setBackground(Qt::red);
          tableWidget->setItem(row, 2, item_wt);

          QTableWidgetItem*item_pn = new QTableWidgetItem {"test2"};
          item_pn->setBackground(Qt::green);
          tableWidget->setItem(row, 3, item_pn);
}


Viewing all articles
Browse latest Browse all 514769

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>