无法更新 QTableWidget 中的字符串
cannot update string in QTableWidget
我想在 table 中将例如 2.16 更改为 2,16。这是我的代码
{
.......
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);
行实现了。但在那之后,table 仍然显示 2.16,而不是 2,16。我不知道为什么?替换字符串后是否需要刷新 table 之类的东西?
您的代码中没有 setText
。试试这个:
QString text = input_item->text().replace(".", ",", Qt::CaseSensitive);
input_item->setText(text);
我想在 table 中将例如 2.16 更改为 2,16。这是我的代码
{
.......
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);
行实现了。但在那之后,table 仍然显示 2.16,而不是 2,16。我不知道为什么?替换字符串后是否需要刷新 table 之类的东西?
您的代码中没有 setText
。试试这个:
QString text = input_item->text().replace(".", ",", Qt::CaseSensitive);
input_item->setText(text);