integer005
Гость
|
|
« : Февраль 24, 2011, 13:48 » |
|
Назначение программы: перехватывает сообщения, смотрит адрес отправителя, лезет в БД и смотрит адреса назначения и перенаправляет сообщение туда.
Есть 3 таблицы в бд mysql: 1-я: id_sender, адрес отправителя. 2-я: id_receiver, адрес назначения, ip адрес. 3-я: id_sender,id_receiver (так как отношение - многие ко многим)
Есть клиент к БД, использую QSqlRelationalTableModel, в QTableView отображаю (адрес_отправителя, адрес_назначения). Использую стандартный QSqlRelationalDelegate: ui->tableView->setItemDelegate(new QSqlRelationalDelegate(ui->tableView)); Все нормально работает: добавляет, удаляет элементы из QTableView и из бд.
Задача: Пусть в 3-ей таблице есть такие значения:
1 а 1 б 2 а 3 в
Поскольку, использую делегат, то при добавлении новой строки, я выбираю значения из выпадающих списков. Пусть в 1-м поле я задал значение "2". Для второго поля хочу чтобы выпадал не весь список а,б,в (поскольку строка "2 а" уже есть, а только б,в).
Вопрос: Я должен наследовать QSqlRelationalDelegate и перегружать какую функцию, чтоб выпадал не весь список, а только нужная часть.
P.S. В самом делегате нужный запрос к БД я составлю. Вопрос только что перегружать?
|