Russian Qt Forum

Qt => Вопросы новичков => Тема начата: LNwolf от Апрель 26, 2016, 14:37



Название: Вопросы по tableView
Отправлено: LNwolf от Апрель 26, 2016, 14:37
Доброго времени суток!
Вопрос такой, есть таблица, в ней надо сделать следующие вещи:
1. Размер столбцов по содержимому ячеек (читал в интернете, что можно при помощи setResizeMode, но у меня не получилось);
2. Размер самой таблицы должен быть по размеру окна программы. (решил путем скомпонования tableview по сетке)

(http://s019.radikal.ru/i633/1604/b1/a5b69b90909ft.jpg) (http://radikal.ru/fp/a27631276ac24a4abc32c32c9733a9dc)


Название: Re: Вопросы по tableView
Отправлено: gil9red от Апрель 26, 2016, 15:31
1. Используйте setSectionResizeMode / setSectionResizeMode передавая QHeaderView::ResizeToContents
2. Используйте менеджеры компоновки на ваш выбор: QVBoxLayout/QHBoxLayout/QGridLayout


Название: Re: Вопросы по tableView
Отправлено: LNwolf от Апрель 26, 2016, 15:44
А можно чуть подробнее про:
1. Используйте setSectionResizeMode / setSectionResizeMode передавая QHeaderView::ResizeToContents
что и куда писать? Я просто на Qt только второй день. Ниже прикрепил мой код создания таблицы, куда конкретно надо вставить ваш совет?

Код:
m = new QStandardItemModel(); //создаем переменную с моделью
ui.tableView->setModel(m); //устанавливаем в переменную модель таблицы
m->setColumnCount(v1.size()); //количество столбцов
m->setRowCount(v2.size()); //количество строк
for (int i = 0; i < v1.size(); ++i)
{
m->setHeaderData(i, Qt::Horizontal,v1[i].code); //горизонтальная шпака таблицы
for (int j = 0; j < v2.size(); ++j)
{
m->setHeaderData(j, Qt::Vertical, v2[j].code); //вертикальная шапка таблицы
}
}