Название: widget, совмещающий свойства QSplitter и QToolBox Отправлено: TaIRou от Август 01, 2011, 22:20 То есть (если я не ошибся в названиях классов в топике) мне необходим такой виджет-контейнер, в котором бы надобие тулбокса было бы реализовано скрытие и показ виджета по нажатию какого-то "заголовка-кнопки", но в тоже время имелась бы возможность лицезреть несколько виджетов из контейнера одновременно и менять их размер.
Поясню на картинках: Вот так это выглядит в проводнике WinXp, правда размеры содержимого не меняются, но идея общая соответсвует. (http://i042.radikal.ru/1108/f0/332b0d5dd5af.png) А вот чего я навоял, стащив кой-чего с исходников Qt Creator'a Вот так выглядит приложение с развернутыми вкладками: (http://s41.radikal.ru/i091/1108/f4/cad819cba168.jpg) Вот так с частично свернутыми: (http://s005.radikal.ru/i210/1108/7c/7783274cdb02.jpg) Ну и на исходе дня я подумал, может я ерундой занимаюсь и есть готовое решение? Название: Re: widget, совмещающий свойства QSplitter и QToolBox Отправлено: Рома от Август 01, 2011, 22:46 А тебе обязательно нужно, чтобы это был отдельный виджет, или подойдет вариант, когда при нажатии на QPushButton группа виджетов становилась невидимой?
Название: Re: widget, совмещающий свойства QSplitter и QToolBox Отправлено: LisandreL от Август 01, 2011, 22:49 А что должно произойти если вы и «Служебная таблица зависимостей» свернёте?
Название: Re: widget, совмещающий свойства QSplitter и QToolBox Отправлено: TaIRou от Август 01, 2011, 23:00 А что должно произойти если вы и «Служебная таблица зависимостей» свернёте? Секретс... ммм)) Экой вы прозорливый)) Сейчас вот ничего хорошего не произойдет, ибо я как раз на этом месте и остановился. Предполагается, что заголовки должны смещаться вверх (соответственно внизу пустота). Примерно так: (http://s56.radikal.ru/i154/1108/0e/025a3d14046c.jpg) Я уж было решил унаследоваться от QSplitter и вперед, но, мож зря ребят? С меня и наследователь некудышный... Если все же буду наследоваться от QSplitter, скорее всего буду предусматривать режим постоянного наличия хотя бы одного раскрытого виджета. Пока такие туманные мысли =/ Название: Re: widget, совмещающий свойства QSplitter и QToolBox Отправлено: TaIRou от Август 01, 2011, 23:04 А тебе обязательно нужно, чтобы это был отдельный виджет, или подойдет вариант, когда при нажатии на QPushButton группа виджетов становилась невидимой? Да, хотелось бы общее решение, желательно готовый класс Название: Re: widget, совмещающий свойства QSplitter и QToolBox Отправлено: Рома от Август 01, 2011, 23:20 Вот, это конешно не совсем то, но как вариант вполне может быть
Код: #include "qmywidg.h" Название: Re: widget, совмещающий свойства QSplitter и QToolBox Отправлено: Racheengel от Август 02, 2011, 02:15 http://sintegrial.com/qsint/pages/en/index.php
посмотри на виджет ActionPanel, насколько я понимаю - это примерно то, что нужно? Название: Re: widget, совмещающий свойства QSplitter и QToolBox Отправлено: TaIRou от Август 02, 2011, 13:32 http://sintegrial.com/qsint/pages/en/index.php посмотри на виджет ActionPanel, насколько я понимаю - это примерно то, что нужно? о, вещь, одназначно полезная и пригодится наверняка, спасибо. попробовал ее на деле, есть пара косяков, но они наверно мои: Основной касается сборки. Библиотека собирается по-умолчанию статически и к этому ее варианту нет претензий. А когда попробовал собрать динамически (убрал опцию CONFIG += staticlib), библиотека собралась, но даже примеры с ее помощью собранные, замирают после запуска с ошибкой. И все-таки хотелось бы что-нибудь с функционалом QSplitter'a, чтобы было возможно не только скрывать/отображать виджеты помещенные в контейнер, но и ресайзить их вручную. Плюс у QSplitter'a, есть пара функций довольно полезных: bool restoreState ( const QByteArray & state ) QByteArray saveState () const Да, один пример из библиотеки не собрался: метод void setMovable ( bool movable ) появился в 4.5, а мне приходится сидеть на ранней версии. Но это хрень, переживем) Еще раз, спасибо, за полезный набор виджетов. Название: Re: widget, совмещающий свойства QSplitter и QToolBox Отправлено: TaIRou от Август 03, 2011, 17:56 Весьма полезным оказалось класть QSplitter на QScrollArea и вызывать метод void QScrollArea::setWidgetResizable ( bool resizable ). QSplitter начинает себя вести гораздо адекватнее.
|