![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Rocky |
![]()
Сообщение
#1
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: ![]() ![]() ![]() |
Есть QTableWidget. В некоторых столбцах размещены чекбоксы, в некоторых комбобоксы, в некоторых QDateTimeEdit. Есть и обычные ячейки. При изменнеии любой информации в любой ячейке мне нужно об этом узнавать. Как поступить? Пробовал перехватывать сигналы itemChanged(...) и cellChanged(...). Слоты, поставленные мной для этих сигналов вызываются только при изменении текста в обычных ячейках. А если менять дату, например, то слоты не вызываются. Какие есть методы, чтобы узнать об изменении?
Спасибо! |
|
|
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Rocky |
![]()
Сообщение
#3
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: ![]() ![]() ![]() |
Реализовано так:
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Можно пойти методом научного тыка, проверить срабатывают ли сигналы:
void cellClicked ( int row, int column ) void cellDoubleClicked ( int row, int column ) void cellEntered ( int row, int column ) void cellPressed ( int row, int column ) void currentCellChanged ( int currentRow, int currentColumn, int previousRow, int previousColumn ) void currentItemChanged ( QTableWidgetItem * current, QTableWidgetItem * previous ) void itemClicked ( QTableWidgetItem * item ) void itemDoubleClicked ( QTableWidgetItem * item ) void itemEntered ( QTableWidgetItem * item ) void itemPressed ( QTableWidgetItem * item ) ![]() |
|
|
Rocky |
![]()
Сообщение
#5
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: ![]() ![]() ![]() |
Попробовал все... ни фига. Вызываются только при изменении характеристик самих ячеек таблицы.... Видимо, тут нужно ловить сигналы от тех элементов управления, которые я добавил в табицу ....
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#6
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Rocky |
![]()
Сообщение
#7
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: ![]() ![]() ![]() |
Да, я терь знаю, что таблица изменилась, но вся нехорошесть в том, что из слотов, которые вызываются при изменении инфы в виджетах, вставленных в таблицу, никак не узнать, какая именно строка подвергается изменению.... Ловить при этом QTableWidget::cellClicked(...) толку не имеет.... не вызывается... Короче муть.... Мне просто надо в базу данных заносить всю эту таблицу, вот я решил сразу это делать, на лету так сказать.... Надо думать терь как по-другому сделать... Просто очень не хочется делать кнопку, чтоб человек нажимал сохранить...
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#8
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Rocky |
![]()
Сообщение
#9
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: ![]() ![]() ![]() |
А функциональность при этом не изменится? В смысле чтоб не просто были соответсвующие базе данных ячейки, а ячейки с виджетами? Надо тогда по-подробнее про представления почитать..
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#10
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
а ячейки с виджетами? это через делегаты делаетсяК стати посмотрел пример %QTDIR%\examples\itemviews\stardelegate там через табличный виджет сделано, я почему-то думал, что через табличное представление. Дак вот там делегаты устанавливаются, да еще и самодельные в виде звездочек. |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 11.3.2025, 10:01 |