Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: voltron от Ноябрь 12, 2012, 22:53



Название: Делегаты и высота строк в QTreeView
Отправлено: voltron от Ноябрь 12, 2012, 22:53
Есть QTreeView с двумя колонками: первая не редактируемая, вторая редактируемая. Для редактирования второй колонки используются делегаты (предоставляют SpinBox и самодельный селектор каталогов). Проблема в том, что по умолчанию высота строк в QTreeView слишком маленькая и если spinbox ещё так-сяк умещается, то селектор сжимает и им невозможно пользоваться.
Пока решил проблему «в лоб» —  переопределил метод sizeHint() делегата и возвращаю заведомо большое значение. Но в результате дерево выглядит очень неаккуратно и некрасиво.

Можно ли как-то получить оптимальную высоту строк для QTreeView, чтобы все делегаты вписывались и не было лишнего пустого места?


Название: Re: Делегаты и высота строк в QTreeView
Отправлено: GreatSnake от Ноябрь 13, 2012, 10:42
Пока решил проблему «в лоб» —  переопределил метод sizeHint() делегата и возвращаю заведомо большое значение. Но в результате дерево выглядит очень неаккуратно и некрасиво.
Что значит «в лоб» ??? sizeHint() именно для этого и предназначен. И это уже твои проблемы коли ты не в состоянии вернуть предпочтительные размеры ячейки. Возвращал бы хотя бы QStyle::subControlRect( QStyle::CC_SpinBox ).size() + "самодельный селектор каталогов".size().


Название: Re: Делегаты и высота строк в QTreeView
Отправлено: voltron от Ноябрь 13, 2012, 12:14
И это уже твои проблемы коли ты не в состоянии вернуть предпочтительные размеры ячейки.
Поэтому и задал вопрос каким образом можно получить оптимальный размер. Форум для этого и предназначен, разве нет?
Возвращал бы хотя бы QStyle::subControlRect( QStyle::CC_SpinBox ).size() + "самодельный селектор каталогов".size().
Спасибо