Автор: vanvo 22.3.2009, 13:49
Возникло пара вопросов:
1. Можно представлять записи в QTableView не строками, а столбцами?
2. Почему изменить горизонтальные заголовки с помощью
model.setHeaderData(0, Qt::Horizontal, tr("region"), Qt::DisplayRole);
удается, а именить вертикальные заголовки (где по имолчанию счетчик записей) с помощью этой же функции не получается
model.setHeaderData(0, Qt::Vertical, tr("region"), Qt::DisplayRole);
?
Автор: ViGOur 24.3.2009, 21:00
Цитата(vanvo @ 22.3.2009, 13:49)
Можно представлять записи в QTableView не строками, а столбцами?
Не думаю, что это можно. Просто стандартное представление идет строками, а не столбцами. Таблица заполняющаяся по одному столбцу, а не по строке, думаю будет выглядеть забавно.
А для чего тебе это нужно?
Цитата(vanvo @ 22.3.2009, 13:49)
Почему изменить горизонтальные заголовки с помощью
Просто Header это заголовок, а то, что с боку, называется как-то по другому.
Автор: Litkevich Yuriy 24.3.2009, 21:27
Цитата(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
Цитата(ViGOur @ 24.3.2009, 21:00)
Цитата(vanvo @ 22.3.2009, 13:49)
Можно представлять записи в QTableView не строками, а столбцами?
Не думаю, что это можно. Просто стандартное представление идет строками, а не столбцами. Таблица заполняющаяся по одному столбцу, а не по строке, думаю будет выглядеть забавно.
А для чего тебе это нужно?
Ну допустим, у нас таблица со множеством полей. При выборке информации мы точно знаем, что получим в результате одну запись. Как ее можно удобно отобразить? Если использовать стандартный QTableView, то таблица будет слишком длинная. Я думаю, что отображение, при котором в первом столбце будут названия полей, а во втором - данные, довольно приемлимо. Хотя интересно послушать ваше мнение
И еще вопросец назрел: как можно в header'е писать в несколько строк?
Автор: Litkevich Yuriy 2.4.2009, 22:13
Цитата(vanvo @ 3.4.2009, 1:35)
как можно в header'е писать в несколько строк?
а стандартный прием:
str = "first line\nsecond line";
не помогает?
Автор: vanvo 3.4.2009, 12:29
Цитата(Litkevich Yuriy @ 2.4.2009, 22:13)
Цитата(vanvo @ 3.4.2009, 1:35)
как можно в header'е писать в несколько строк?
а стандартный прием:
str = "first line\nsecond line";
не помогает?
Хм... Вот точно помню, что пробовал - не получалось: \n отображалось как текст. А сейчас работает
Спасибо
Автор: Litkevich Yuriy 25.4.2010, 21:00
Тему разделил: http://www.forum.crossplatform.ru/index.php?showtopic=4819