![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
tnsr |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 11.12.2013 Пользователь №: 4006 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Всем здравствуйте.
В поставке QT есть проект demos\sqlbrowser После открытия таблицы он позволяет редактировать данные 1. Как сделать так чтобы QTableView показывал значок - запись изменена? 2. Как сделать чтобы данные сохранялись в базе MySQL? С уважением ;o) |
|
|
tnsr |
![]()
Сообщение
#2
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 11.12.2013 Пользователь №: 4006 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Видимо по первому пункту надо использовать
model->setHeaderData(..., Qt::Horizontal, QObject::tr("*")); А по второму SubmitAll Остался вопрос в каких методах это делать, т.е. как это реализовать? |
|
|
tnsr |
![]()
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 11.12.2013 Пользователь №: 4006 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Если политика выставлена
model->setEditStrategy(QSqlTableModel::OnRowChange); то нужен SubmitAll? |
|
|
tnsr |
![]()
Сообщение
#4
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 11.12.2013 Пользователь №: 4006 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
В общем есть такой код:
Но данные в таблицу не сбрасываюся почему? Еще вопрос, что значит эта строка?:
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#5
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Если политика выставленаmodel->setEditStrategy(QSqlTableModel::OnRowChange);то нужен SubmitAll? вот именно из-за этой политики оба пункта из первого поста не имеют смысл, т.к. данные сразу же отправляются в БД (это можно было легко проверить заглянув в БД)Еще вопрос, что значит эта строка?: настраивается соединение сигнала со слотом. |
|
|
tnsr |
![]()
Сообщение
#6
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 11.12.2013 Пользователь №: 4006 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Юрий, спасибо за ответ. Думал уж никто не ответит.
Если политика выставленаmodel->setEditStrategy(QSqlTableModel::OnRowChange);то нужен SubmitAll? вот именно из-за этой политики оба пункта из первого поста не имеют смысл, т.к. данные сразу же отправляются в БД (это можно было легко проверить заглянув в БД)Еще вопрос, что значит эта строка?: настраивается соединение сигнала со слотом.во второму - нашел код слота - разобрался а по первому: OnRowChange - изменения видимо должны сбрасываться при смене строки(может еще при каких событиях?) но у меня ничего в базу не попадает. может еще у кого есть qt и mysql и есть возможность проверить эту программу(она в папке demos/sqlbrowser)? почему может не отрабатывать политика? как это отследить? я еще ни разу не пользовался отладчиками для c++. может подскажите как. |
|
|
tnsr |
![]()
Сообщение
#7
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 11.12.2013 Пользователь №: 4006 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Думаю, что это баг в QSqlTableView.
Видимо, остальные вручную меняют его поведение. Буду использовать Qt5. Диалог с разработчиком Qt |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 10.7.2025, 23:25 |