QTableWidget设置列和获取列

QTableWidget设置列和获取列,qt,qtablewidget,qtablewidgetitem,Qt,Qtablewidget,Qtablewidgetitem,我试图以编程方式设置QTableWidget的一些值,但它似乎不起作用。 在主线程中,我使用(primary_set)设置表: 对于n行,它是有效的 之后,如果发生事件,我要做的是更改特定行上的图标和“状态”。 这是我在一个单独线程中的控件,它不工作(检查): 它继续调用User+5事件。如何检查第3行和第3列中的_getItem是否已经设置了“K”文本?结果总是\u getItem->text()“没有这样的值” 然后,这是User+5事件(第二组)的代码: 我必须使用“while”,因为大多

我试图以编程方式设置QTableWidget的一些值,但它似乎不起作用。 在主线程中,我使用(primary_set)设置表:

对于n行,它是有效的

之后,如果发生事件,我要做的是更改特定行上的图标和“状态”。 这是我在一个单独线程中的控件,它不工作(检查):

它继续调用
User+5
事件。如何检查第3行和第3列中的_getItem是否已经设置了“K”文本?结果总是
\u getItem->text()
“没有这样的值”

然后,这是
User+5
事件(第二组)的代码:

我必须使用“while”,因为大多数情况下,状态检查都会确认第3行中的文本仍然是旧文本

因此,我的问题是:

1) 在检查部分,如何检查元素是否已经具有值“K”


2) 在第二个设置部分,为什么要多次尝试设置行、列中的值?

1)
\u getItem->text()!=“K”
是正确的检查方法。问题出在别的地方。2) 无需每次更改单元格文本时都创建新项。只需调用
pItem-setText()为它(和相同的图标/样式/…)发现问题,谢谢。我没有意识到customEvents是不同的线程,所以我必须在退出CHECK之前添加一个信号量,并等待第二个_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)));
        }
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();