Тема избитая на просторах интернета, но я так и не могу ее решить. Либо на форумах отправляют документацию читать либо советуют то что в конечном итоге не работает. Во общем задача такая. При редактировании какой либо ячейки, по итогу ввода, запускается проверка введенного текста. Как отследить изменение, и получить текст. Я пытался делать через void QTableWidget::itemChanged ( QTableWidgetItem * item ) и void QTableWidget::cellChanged ( int row, int column ) [signal] но что то не могу разобраться(
item->text()
возвратит текст ячейки.
item->text()
возвратит текст ячейки.Ну тогда переопределить keyPressEvent или поставить фильтр событий. Итогом ввода можно считать например нажатие клавиши Enter или сигнал itemSelectionChanged. Текст полученный в обработчике keyPressEvent сохранять в отдельной переменной, а по окончанию ввода (см. выше) проверять полученную строку.
Пришлось отказаться от tablewidget и перейти на tableview. Я как раз лабу и делаю про mvс. Создал модель, передаю ее в tableview. В первом столбце char в другом допустим int. Вот мне необходимо отслеживать. + сама программа может изменить. Да мне хотя бы самый минимум сделать. Необязательно хранить старое значение, если не корректно введены данные, то не выходить из редактирования элемента. Сейчас разберусь с мвц, и пример гляну.
Спасибо за ценный пример, толко я не пойму как вы создаете модель. Какой класс у вас родительским является. Я читаю книжку Макса Шлее, я создавал модель выбирая в качестве родительского класса, класс QStringListModel а у вас как?
А, все. Не заметил класс) Разобрался, спасибо!
Извините за флуд, ни как не могу лабу доделать. Вот я создаю:
QList<QStandardItem *> column1;
QStandardItem *item = new QStandardItem();
item->setData("текст", Qt::DisplayRole);
column1.append(item);
Все работает. Но когда я хочу сделать так, что бы лист содержал два итема и пишу
QStandardItem *item = new QStandardItem();
item->setData("текст", Qt::DisplayRole);
column1.append(item);
item->setData("текст2", Qt::DisplayRole);
column1.append(item);
Вместо текст2 отображается пустая ячейка, почему??? Если создать новый итем все работает, но это получается на каждый элемент таблицы свой итем??
QStandardItem *item = new QStandardItem();
item->setData("текст", Qt::DisplayRole);
column1.append(item);
item->setData("текст2", Qt::DisplayRole);
column1.append(item);
....
QStandartItemModel* pSomeModel = new QStandartItemModel(...);
QStandardItem *item = new QStandardItem();
item->setData("текст", Qt::DisplayRole);
pSomeModel->appendRow(item);
item = new QStandardItem();
item->setData("текст2", Qt::DisplayRole);
pSomeModel->appendRow(item);
....
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)