[РЕШЕНО] Дерево и скролл, Несколько косметических вопросов) |
Здравствуйте, гость ( Вход | Регистрация )
[РЕШЕНО] Дерево и скролл, Несколько косметических вопросов) |
Elfinit |
20.12.2009, 0:06
Сообщение
#1
|
Участник Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: 1 |
Доброго всем времени суток!
У меня 4 вопроса: 1. Есть QTreeWidget. У него, как я понял, по умолчанию есть скрол. Так вот он мне не нужен. Мне надо, чтобы при expand-е или collaps-е меняло размер само дерево,а вертикальный скрол вообще появляться не должен. Как сделать? 2. Никак не хочет появляться горизонтальный скрол( 3. У дерева слишком большие отступы при переходе к очередному уровню. Их можно как-то уменьшить? Желательно, чтобы картинка-branch была прямо под первой буквой родительского узла, а можно даже ещё левее. 4. Можно ли как-то сделать, чтобы вертикальный скрол появлялся не справа, а слева. Соответственно, горизонтальный - не снизу, а сверху. Заранее спасибо)) Сообщение отредактировал Elfinit - 21.12.2009, 11:49 |
|
|
DIMEDROLL |
20.12.2009, 2:49
Сообщение
#2
|
Участник Группа: Участник Сообщений: 165 Регистрация: 28.9.2008 Из: Киев Пользователь №: 304 Спасибо сказали: 23 раз(а) Репутация: 0 |
|
|
|
Elfinit |
20.12.2009, 11:09
Сообщение
#3
|
Участник Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: 1 |
|
|
|
Litkevich Yuriy |
20.12.2009, 12:59
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
frg10 |
20.12.2009, 13:51
Сообщение
#5
|
Студент Группа: Участник Сообщений: 47 Регистрация: 8.11.2009 Из: Ростов-на-Дону Пользователь №: 1213 Спасибо сказали: 5 раз(а) Репутация: 2 |
1. Есть QTreeWidget. У него, как я понял, по умолчанию есть скрол. Так вот он мне не нужен. Мне надо, чтобы при expand-е или collaps-е меняло размер само дерево,а вертикальный скрол вообще появляться не должен. Как сделать? Попробуй tree->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); 2. Никак не хочет появляться горизонтальный скрол( Подозреваю, что аналогично: setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn) или setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded) |
|
|
Elfinit |
20.12.2009, 14:24
Сообщение
#6
|
Участник Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: 1 |
в QTree* тоже общий Привожу объясняющие скрины. Блоки "Общее", "Папки" и "Альбомы" лежат на одном ScrollArea. Второй скрин показывает, как это сделано в LightRoom Попробуй tree->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); Не помогает, скрол просто не появляется, но блок не увеличивается. setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn) или setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded) Как я уже только не пробовал) Вообще, погуглив, понял, что это больной вопрос, когда в дереве один столбец. А у меня ещё и элементы дерева - виджеты. Сообщение отредактировал Elfinit - 20.12.2009, 14:21 |
|
|
Litkevich Yuriy |
20.12.2009, 15:47
Сообщение
#7
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Elfinit, работать должно так:
когда раскрываем подветви поддерева ("folders", "catalog", будем называть поддеревья), то размер поддерева увеличивается в высоту, чтобы содержимое поддерева полностью поместилось. правильно ли я понял? Если так, то Qt Designer версии >=4.5, редактор свойств. Останется только своё оформление навесить и линейку прокрутки перенести в другое место. |
|
|
Elfinit |
20.12.2009, 23:12
Сообщение
#8
|
Участник Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: 1 |
"folders", "catalog", будем называть поддеревья Дело в том, что "Общее", "Папки" и "Альбомы" - это не поддеревья, это обычные фрэймы. Переделывать всю левую панельку так, чтобы в ней было одно только дерево-нереально (блок "Папки" появился гораздо позднее остальных и только для него уместна "логика" дерева, в "Альбомы" и "Общее" нет никаких ветвей). Т.о. дерево тут - ТОЛЬКО внутри блока "Папки". Если бы вся панелька была на основе одного дерева - проблемы бы не возникало вообще, скрол бы сам появлялся. А мне нужно, чтобы дерево в "Папки" увеличивалось в размере, сдвигая при необходимости ниже блок "Альбомы". А скрол в левую часть убрать как? На основе обычной Scroll Area никак? Сообщение отредактировал Elfinit - 20.12.2009, 23:13 |
|
|
igor_bogomolov |
21.12.2009, 9:22
Сообщение
#9
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
4. Можно ли как-то сделать, чтобы вертикальный скрол появлялся не справа, а слева. Соответственно, горизонтальный - не снизу, а сверху. Установи для QScrollArea свойство layoutDirection в Qt::RightToLeft, а для всех его детей Qt::LeftToRight и будет счастье Цитата 3. У дерева слишком большие отступы при переходе к очередному уровню. Их можно как-то уменьшить? Желательно, чтобы картинка-branch была прямо под первой буквой родительского узла, а можно даже ещё левее. Посмотри на свойство QTreeWidget indentationЦитата 1. Есть QTreeWidget. У него, как я понял, по умолчанию есть скрол. Так вот он мне не нужен. Мне надо, чтобы при expand-е или collaps-е меняло размер само дерево,а вертикальный скрол вообще появляться не должен. Как сделать? Как вариант, скрыть скроллы, ловить сигнал QTreeView::expanded, вычислять размер и делать ресайз
|
|
|
Elfinit |
21.12.2009, 10:09
Сообщение
#10
|
Участник Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: 1 |
|
|
|
Текстовая версия | Сейчас: 5.1.2025, 17:00 |