2016-07-21 8 views
0

Я хочу изменить, например, 2.16 на 2,16 в таблице. Это мой кодне может обновить строку в QTableWidget

{ 
    ....... 
    connect(ui.tableWidget, SIGNAL(itemChanged(QTableWidgetItem*)), this, SLOT(change_string(QTableWidgetItem*))); 
} 

void MyClass::change_string(QTableWidgetItem* input_item) 
{ 
    if (input_item->text() != "") { 
     if (input_item->text().contains(".", Qt::CaseSensitive)) { 
      input_item->text().replace(".", ",", Qt::CaseSensitive); 
     } 
    } 
} 

Мой код работает нормально, я отлажена, линия input_item->text().replace(".", ",", Qt::CaseSensitive); реализуется. Но после этого таблица по-прежнему показывает 2,16, а не 2,16. Я не знаю почему? Нужно ли обновлять таблицу или что-то подобное после замены строки?

ответ

1

Вы не указали setText в своем коде. Попробуйте следующее:

QString text = input_item->text().replace(".", ",", Qt::CaseSensitive); 
input_item->setText(text); 
+0

спасибо большое Frogatto! :) – htmlamateur