crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QSqlQueryModel+QSqlRelationalTableModel=...?
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
tha_new_usah Дата 20.7.2010, 10:43
  В общем, добралась я до этого, всё вроде работает, но появилась одна проблема...
В моем проекте главное окно названо mainwindow, на нем расположен QTableView.

Если я после описания setColumnHidden использую
view->show();

тогда у меня открывается кроме mainwindow еще и дополнительное окошко с QTableView, там все отображается верно (скрыт тот столбец, который требуется)

Если же я использую для вывода данных следующее выражение
ui->tableView->setModel(model);

Тогда мои указания насчет setColumnHidden остаются проигнорированы. То есть все столбцы отображаются "как есть".

Можно это как-нибудь полечить? Не могу что-то сообразить... =(

Кстати,
    ui->tableView->setColumnHidden(0, 1);
    ui->tableView->setModel(model);

Тоже не дает никакого эффекта :(

А вот этот код
    ui->tableView->setColumnHidden(0, 1);
    ui->tableView->show();

не показывает в tableView ровным счетом ничего.

UPD

ААаааааааа... Я идиот....
Всё, разобралась, надо было их местами поменять просто =)
tha_new_usah Дата 13.7.2010, 7:07
 
Цитата(maint @ 13.7.2010, 13:03) *
если я правильно понял, надо просто на вьюхе спрятать колонку, не показывать. Смотреть в сторону setColumnHidden(номер_колонки, true)

Да, точно :) Спасибо, это то, что надо :) Покопаю сегодня в эту сторону :)
maint Дата 13.7.2010, 7:03
 
Цитата(tha_new_usah @ 13.7.2010, 12:14) *
Всем привет!
Пишу програмку для диплома, работающую с БД. Сама программа является аналогом уже существующей разработки BusList - то есть, она ведет журнал путевых листов автобусов, помогает составлять заполненные формы путевых листов на основе данных, имеющихся в БД.
В главном окне у меня собственно сам журнал путевых листов, т.е. таблица, которая имеет такие поля, как например, номер автобуса и фамилия водителя, в качестве Foreign Key. Отображаются данные, соответственно, в tableView на форме.
Данные о номере автобуса и водителе берутся из соответствующих таблиц.
Собственно, рилэйшнл тэйбл модел я уже прикрутила, но хотелось бы сделать следующее: чтобы в главном окне программы, в таблице "журнал путевых листов" не отображалось ключевое поле, т.к. я считаю его избыточным.
Вот тут и встает загвоздка, можно реализовать отдельно QSqlQueryModel, чтобы он отображал все столбцы, кроме ключевого, но тогда в столбцах "номер автобуса" и "водитель" будут лишь числовые значения, относящиеся к суррогатному ключу соответствующих таблиц; а можно реализовать отдельно QSqlRelationalTableModel, чтобы пользователь мог наблюдать сразу имена и номера автобусов, но тогда в главном окне появляется столбец "Код записи", который, в общем-то, мешает.

Есть какие-нибудь идеи, как можно скрестить эти два класса? В идеале в итоговом tableView должны быть только нужные столбцы, а так же должны отображаться записи из связанных таблиц.

если я правильно понял, надо просто на вьюхе спрятать колонку, не показывать. Смотреть в сторону setColumnHidden(номер_колонки, true)
tha_new_usah Дата 13.7.2010, 6:14
  Всем привет!
Пишу програмку для диплома, работающую с БД. Сама программа является аналогом уже существующей разработки BusList - то есть, она ведет журнал путевых листов автобусов, помогает составлять заполненные формы путевых листов на основе данных, имеющихся в БД.
В главном окне у меня собственно сам журнал путевых листов, т.е. таблица, которая имеет такие поля, как например, номер автобуса и фамилия водителя, в качестве Foreign Key. Отображаются данные, соответственно, в tableView на форме.
Данные о номере автобуса и водителе берутся из соответствующих таблиц.
Собственно, рилэйшнл тэйбл модел я уже прикрутила, но хотелось бы сделать следующее: чтобы в главном окне программы, в таблице "журнал путевых листов" не отображалось ключевое поле, т.к. я считаю его избыточным.
Вот тут и встает загвоздка, можно реализовать отдельно QSqlQueryModel, чтобы он отображал все столбцы, кроме ключевого, но тогда в столбцах "номер автобуса" и "водитель" будут лишь числовые значения, относящиеся к суррогатному ключу соответствующих таблиц; а можно реализовать отдельно QSqlRelationalTableModel, чтобы пользователь мог наблюдать сразу имена и номера автобусов, но тогда в главном окне появляется столбец "Код записи", который, в общем-то, мешает.

Есть какие-нибудь идеи, как можно скрестить эти два класса? В идеале в итоговом tableView должны быть только нужные столбцы, а так же должны отображаться записи из связанных таблиц.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 4.12.2024, 16:27