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 кажется, что требуется более одной попытки установить значение в строке, столбце?