Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: hotsanchous от Июль 09, 2010, 06:41



Название: Определить размер QTableWidget
Отправлено: hotsanchous от Июль 09, 2010, 06:41
Мне необходимо узнать размер видимой области QTableWidget, чтобы определить сколько строк в него войдет до момента начала скроллинга.


Название: Re: Определить размер QTableWidget
Отправлено: GreatSnake от Июль 09, 2010, 07:29
QTableWidget::viewport()->size()


Название: Re: Определить размер QTableWidget
Отправлено: hotsanchous от Июль 09, 2010, 07:41
QTableWidget::viewport()->size()
я тоже так думал но когда пишу
Код:
qDebug() << "size = " << ui->tableWidget_1->viewport()->size();
в ответ выдается одно и тоже(size =  QSize(98, 5)), хотя размер таблицы я меняю. От сюда впечатление что выдается размер ячейки.


Название: Re: Определить размер QTableWidget
Отправлено: GreatSnake от Июль 09, 2010, 10:31
Ну, тогда так:
Код
C++ (Qt)
ui->tableWidget_1->height() - ui->tableWidget_1->horizontalHeader()->height() -
ui->tableWidget_1->minimumHeight() - ui->tableWidget_1->horizontalScrollBar()->height()


Название: Re: Определить размер QTableWidget
Отправлено: SABROG от Июль 09, 2010, 10:57
Мне необходимо узнать размер видимой области QTableWidget, чтобы определить сколько строк в него войдет до момента начала скроллинга.
Размеры строк могут быть разными. При одинаковом размере вьюпорта в него может войти как 100 итемов, так и 1. Если жестко задать общий размер для всех строк, то обычной математической операцией можно вычислить количество элементов, которое теоретически может войти в окно: Высота вьюпорта/Высота элемента = приблизительное количество элементов (+/- 1), зависит от округления.

Цитировать
QSize(98, 5)
Размеры окна меняются, а размер вьюпорта видимо зависит от количества элементов которое в данный момент показываются.