Первичный ключ в QtableWidget — если строка существует, обновите в противном случае Добавить

Будучи новичком в Qt. Я хотел знать, есть ли способ добавить первичный ключ в QtableWidget. Причина, по которой я хочу это сделать, заключается в том, что я хочу создать механизм, так что если я добавлю строку с ключом, которого нет в таблице, он будет добавлен как новая строка, в противном случае существующая строка с этим ключом будет обновлена. предложения о том, как я мог бы сделать это?

0

Решение

        // Assuming m_table of QTableWidget* type
// Assuming single column

const int rowCount = m_table->rowCount();
if(rowToInsert < rowCount)
{
m_table->setItem(rowToInsert, 0, /* your data */ );
}
else
{
m_table->setRowCount(rowCount + 1);
m_table->setItem(rowCount + 1, 0, /* your data */ );
}
0

Другие решения

использование QTableWidgetItem::setData ( int role, const QVariant & value ) способ установить ваши данные (первичный ключ) с помощью пользовательских role, а также QVariant QTableWidgetItem::data ( int role ) чтобы получить это. role должно быть Qt::UserRole или любое число выше, чем 32, Смотрите ссылку на QTableWidgetItem :: setData (int role, const QVariant & значение) для получения дополнительной информации.

И если вы новичок в Qt, вы должны искать Qt модель / вид, в вашем случае это может быть разумно сделать вашу регистрацию в model и отобразить данные модели в QTableView вместо QTableWidget,

0

По вопросам рекламы [email protected]