crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Header в QTableView как реализовать такое
ЙаМайскЫйПчОЛ
  опции профиля:
сообщение 22.6.2010, 20:15
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 154
Регистрация: 10.7.2008
Из: СПб
Пользователь №: 232

Спасибо сказали: 7 раз(а)




Репутация:   5  


Здравствуйте товарищи.
Есть такая модель основанная на QStandardItem'ах, хотя что греха таить это QStandardItemModel.
|-0-Z
| |-X-Z
| |-X-Z
| `-X-Z
|-0-Z
| |-X-Z
| |-X-Z
| `-X-Z
...
Есть два QTableView один должен отображать в табличном виде элементы 0 и Y, а второй при клике на 0
делает setRootIndex(0) тем самым отображая в табличном виде элементы X и Z.
Вопрос в том как мне можно выставить разные HorizontalHeader для этих двух QTableView.
Мне известен только способ выставления через модель, но в таком случае, название колонки X совпадает с названием колонки O
А мне необходимо, что бы разные типы элементов, находились в колонках с разными названиями.


Z - поле хранящее описание 0 и X я его оформляю отдельным Itemом может это и не правильно...
П.С. Каждый Элемент O,Z,X = QStandardItem.

Я запутался.
Заранее благодарю всех, кто откликнется

Сообщение отредактировал ЙаМайскЫйПчОЛ - 22.6.2010, 20:16
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 23.6.2010, 0:50
Сообщение #2


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Цитата(ЙаМайскЫйПчОЛ @ 22.6.2010, 21:15) *
Вопрос в том как мне можно выставить разные HorizontalHeader для этих двух QTableView.
Мне известен только способ выставления через модель, но в таком случае, название колонки X совпадает с названием колонки O

void QTableView::setHorizontalHeader ( QHeaderView * header )

Примерно так
Раскрывающийся текст
    QStandardItemModel *model = new QStandardItemModel(5,5, this);
    for (int i=0;i!=5;++i) {
        for (int j=0;j!=5;++j) {
            model->setItem(i,j, new QStandardItem(tr("item %1").arg(j+i*5)));
        }
    }

    ui->tableView_1->setModel(model);
    ui->tableView_2->setModel(model);

    QHeaderView *header_1 = new QHeaderView(Qt::Horizontal, ui->tableView_1);
    QHeaderView *header_2 = new QHeaderView(Qt::Horizontal, ui->tableView_2);

    QStandardItemModel *header_model_1 = new QStandardItemModel(0,0, header_1);
    header_model_1->setHorizontalHeaderLabels(QStringList()<<"A"<<"B"<<"C"<<"D"<<"E");

    QStandardItemModel *header_model_2 = new QStandardItemModel(0,0, header_2);
    header_model_2->setHorizontalHeaderLabels(QStringList()<<"F"<<"G"<<"H"<<"I"<<"J");

    header_1->setModel(header_model_1);
    header_2->setModel(header_model_2);

    ui->tableView_1->setHorizontalHeader(header_1);
    ui->tableView_2->setHorizontalHeader(header_2);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 8.12.2019, 14:13