QTableWidget установить столбец и получить столбец

Я пытаюсь программно установить некоторые значения моего QTableWidget, но, похоже, он не работает. В моем основном потоке я установил таблицу с помощью (PRIMARY_SET):

Status="N";
Number = QString::number(x);
Name= "abc;
nrow=i;
QTableWidgetItem *item_Number = new QTableWidgetItem(Number);
QTableWidgetItem *item_Name = new QTableWidgetItem(Name);
QTableWidgetItem *item_Status = new QTableWidgetItem(Status);

QTableWidgetItem *icon_item = new QTableWidgetItem;
QIcon icon("path/to/.png"); 
icon_item->setIcon(icon);
ui->TabKeyAlarm_TableED->setItem(nrow, 0, item_Number);
ui->TabKeyAlarm_TableED->repaint();
ui->TabKeyAlarm->repaint();
ui->centralWidget->repaint();
ui->TabKeyAlarm_TableED->setItem(nrow, 1, icon_item);
ui->TabKeyAlarm_TableED->repaint();
ui->TabKeyAlarm->repaint();
ui->centralWidget->repaint();
ui->TabKeyAlarm_TableED->setItem(nrow, 2, item_Name);
ui->TabKeyAlarm->repaint();
ui->centralWidget->repaint();
ui->TabKeyAlarm_TableED->setItem(nrow, 3, item_Status);

ui->TabKeyAlarm_TableED->repaint();
ui->TabKeyAlarm->repaint();
ui->centralWidget->repaint();

для п ряд и все работает.

После этого мне нужно поменять значок и "Статус" в определенной строке, если произойдет событие. Это мой контроль в отдельном потоке, который не работает (ПРОВЕРИТЬ):

QTableWidgetItem *_getItem = ui->TabKeyAlarm_TableED->item(n_MOD,3);
if (_getItem)
    if (_getItem->text() != "K")
        {
            QEvent(QEvent::Type(QEvent::User+5)));
        }

Это непрерывно называют User+5 событие. Как я могу проверить, _getItem в строке n_MOD а в колонке 3 уже есть текст "K"? Результат всегда _getItem->text() "нет такого значения"...

Тогда это код для User+5 событие (SECOND_SET):

QString _Status_check="";
Status="K";
QTableWidgetItem *icon_item = new QTableWidgetItem;
QTableWidgetItem *item_Status = new QTableWidgetItem(Status);

while (_Status_check != "K")
{
   QIcon icon("path/to/.png"); 
   icon_item->setIcon(icon);

   ui->TabKeyAlarm_TableED->setItem(n_MOD, 1, icon_item);
   ui->TabKeyAlarm_TableED->setItem(n_MOD, 3, item_Status);
   _Status_check = ui->TabKeyAlarm_TableED->item(n_MOD,3)->text();

Я должен использовать это "пока", потому что в противном случае в большинстве случаев _Status_check подтверждает, что текст в строке n_MOD столбца 3 все еще имеет старый текст...

Итак, мои вопросы:

1) Как проверить, есть ли в элементе CHECK значение "K"?

2) Почему в разделе SECOND_SET кажется, что требуется более одной попытки установить значение в строке, столбце?

0 ответов

Другие вопросы по тегам