crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> отображение в QTableView
vanvo
  опции профиля:
сообщение 22.3.2009, 13:49
Сообщение #1


Студент
*

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

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




Репутация:   0  


Возникло пара вопросов:
1. Можно представлять записи в QTableView не строками, а столбцами?
2. Почему изменить горизонтальные заголовки с помощью
model.setHeaderData(0, Qt::Horizontal, tr("region"), Qt::DisplayRole);

удается, а именить вертикальные заголовки (где по имолчанию счетчик записей) с помощью этой же функции не получается
model.setHeaderData(0, Qt::Vertical, tr("region"), Qt::DisplayRole);
?

Сообщение отредактировал vanvo - 22.3.2009, 13:52
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 24.3.2009, 21:00
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


Цитата(vanvo @ 22.3.2009, 13:49) *
Можно представлять записи в QTableView не строками, а столбцами?
Не думаю, что это можно. Просто стандартное представление идет строками, а не столбцами. Таблица заполняющаяся по одному столбцу, а не по строке, думаю будет выглядеть забавно.

А для чего тебе это нужно?

Цитата(vanvo @ 22.3.2009, 13:49) *
Почему изменить горизонтальные заголовки с помощью
Просто Header это заголовок, а то, что с боку, называется как-то по другому.

Сообщение отредактировал ViGOur - 24.3.2009, 21:01
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 24.3.2009, 21:27
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9666
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(ViGOur @ 25.3.2009, 0:00) *
Просто Header это заголовок, а то, что с боку, называется как-то по другому.
нет, всё также.
vanvo, всё работает ищи багу у себя

#include <QApplication>
#include <QTextCodec>
#include <QStandardItemModel>
#include <QTableView>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    
    // Установим кодировку для функции перевода tr()
    QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));

    
    // Создадим табличную модель 2 столца, 4 строки
    QStandardItemModel model(4, 2);
    
    // Создадим табличное представление
    // и установим для него модель
    QTableView tableView;
    tableView.setModel(&model);
    
    // Заполним модель данными
    for (int row = 0; row < 4; row++)
    {
        // создаем строчки
        for (int column = 0; column < 2; column++)
        {
            // создаем колонки
            QModelIndex index = model.index(row, column, QModelIndex());
            model.setData(index, QVariant((row) + (column)));//
        }
    }

    // заголовок
    model.setHeaderData(0, Qt::Horizontal, QObject::tr("region"), Qt::DisplayRole);
    model.setHeaderData(0, Qt::Vertical, QObject::tr("YYY"), Qt::DisplayRole);

    // Отобразим представление
    tableView.show();
    return app.exec();
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
vanvo
  опции профиля:
сообщение 2.4.2009, 21:35
Сообщение #4


Студент
*

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

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




Репутация:   0  


Цитата(ViGOur @ 24.3.2009, 21:00) *
Цитата(vanvo @ 22.3.2009, 13:49) *
Можно представлять записи в QTableView не строками, а столбцами?
Не думаю, что это можно. Просто стандартное представление идет строками, а не столбцами. Таблица заполняющаяся по одному столбцу, а не по строке, думаю будет выглядеть забавно.

А для чего тебе это нужно?

Ну допустим, у нас таблица со множеством полей. При выборке информации мы точно знаем, что получим в результате одну запись. Как ее можно удобно отобразить? Если использовать стандартный QTableView, то таблица будет слишком длинная. Я думаю, что отображение, при котором в первом столбце будут названия полей, а во втором - данные, довольно приемлимо. Хотя интересно послушать ваше мнение :)
И еще вопросец назрел: как можно в header'е писать в несколько строк?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 2.4.2009, 22:13
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9666
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(vanvo @ 3.4.2009, 1:35) *
как можно в header'е писать в несколько строк?
а стандартный прием:
str = "first line\nsecond line";

не помогает?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
vanvo
  опции профиля:
сообщение 3.4.2009, 12:29
Сообщение #6


Студент
*

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

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 2.4.2009, 22:13) *
Цитата(vanvo @ 3.4.2009, 1:35) *
как можно в header'е писать в несколько строк?
а стандартный прием:
str = "first line\nsecond line";

не помогает?

Хм... Вот точно помню, что пробовал - не получалось: \n отображалось как текст. А сейчас работает :) Спасибо :)

Сообщение отредактировал vanvo - 3.4.2009, 12:29
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 25.4.2010, 21:00
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9666
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Тему разделил: Как отобразить масив [n][m] в QTableView?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 22.4.2021, 23:20