Название: Узнать размер виджета выходящего за размеры экрана Отправлено: iukash от Апрель 26, 2011, 12:16 Название темы лучше придумать не смог, сильно не пинайте! В общем проблема следующая, есть центральный виджет приложения QTreeWidget, необходимо определить его размер, но проблема в том что width() и height() возвращают размер виджета вписанного в окно приложения, то есть если размер приложения 600 на 600, то виджет будет примерно 600 на 550, но реально ели он больше у него появляются скроллбары. Так вот мне нужен размер виджета с учетом того размера который не видно но можно прокрутить по скроллам.
Название: Re: Узнать размер виджета выходящего за размеры экрана Отправлено: Denjs от Апрель 26, 2011, 14:15 т..е надо узнать размер виджета отображаемого внутри QScroolArea? (иначе откуда это у вас появляются полосы прокрутки?)
поисследуйте подробнее объектную структуру вашего виджета (что кому как подчинено) 0- наверняка там где-то в иерархии есть ScroolArea, и попробуйте посмотреть в сторону его свойств? и точнее скажите - вы width() и height() - пытаетесь узнать для виджета "_на_ котором отображен ScroolArea" или для виджета "который отображается _внутри_ ScroolArea" ? Название: Re: Узнать размер виджета выходящего за размеры экрана Отправлено: iukash от Апрель 26, 2011, 14:35 Виджет QTreeWidget, что внутри чего не знаю. имею ввиду как раз размер внутри QScroolArea.
Название: Re: Узнать размер виджета выходящего за размеры экрана Отправлено: GreatSnake от Апрель 26, 2011, 14:53 ширина - QTreeWidget::horizontalScrollBar()->maximim()
высота - QTreeWidget::verticalScrollBar()->maximim() Название: Re: Узнать размер виджета выходящего за размеры экрана Отправлено: iukash от Апрель 26, 2011, 15:06 Цитировать ширина - QTreeWidget::horizontalScrollBar()->maximim() Они возвращают value слайдера, а мне надо размер.высота - QTreeWidget::verticalScrollBar()->maximim() Название: Re: Узнать размер виджета выходящего за размеры экрана Отправлено: GreatSnake от Апрель 26, 2011, 15:10 Цитировать Они возвращают value слайдера, а мне надо размер. И зачем пороть чушь?Название: Re: Узнать размер виджета выходящего за размеры экрана Отправлено: iukash от Апрель 26, 2011, 15:17 Цитировать Они возвращают value слайдера, а мне надо размер. И зачем пороть чушь?Название: Re: Узнать размер виджета выходящего за размеры экрана Отправлено: Denjs от Апрель 26, 2011, 15:55 ...А что мне делать со значением которое мне вернул horizontalScrollBar()->maximim()? а вот я бы при создании такого рода виджета - мог записать туда что-то связанное с положением внутреннего виджета в пикселях... (простите не могу сейчас проверить)там что записано в вашем случае для вашего виджета? Название: Re: Узнать размер виджета выходящего за размеры экрана Отправлено: GreatSnake от Апрель 26, 2011, 15:57 Попробуй так:
Код
Название: Re: Узнать размер виджета выходящего за размеры экрана Отправлено: Командор от Апрель 26, 2011, 18:50 Сначала нужно перевести режим перемещения скрола в пиксельный:
Код: treeWidget->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); После этого свойства скрола будут "пиксельными" и суммарный размер можно найти как: Код: treeWidget->height() + treeWidget->verticalScrollBar()->maximum()); Название: Re: Узнать размер виджета выходящего за размеры экрана Отправлено: iukash от Апрель 26, 2011, 20:23 Сначала нужно перевести режим перемещения скрола в пиксельный: Код: treeWidget->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); После этого свойства скрола будут "пиксельными" и суммарный размер можно найти как: Код: treeWidget->height() + treeWidget->verticalScrollBar()->maximum()); Спасибо огромное! Как буду на работе попробую! Denjs и GreatSnake вам тоже спасибо за помощь! |