Название: WidgetBox аля Qt Designer (creator) Отправлено: AlekseyK от Март 16, 2016, 17:12 Пытался найти хороший пример или полноценный код для виджета похожего на Widget Box в Qt Designer (creator), но который бы содержал не список заготовок внутри, а QWidget или QFrame. Т.е. он должен работать как QToolBox или QTabWidget и уметь разворачиваться-сворачиваться, чтобы была возможность видеть сразу несколько страниц (виджетов), а не одну как предоставляют QToolBox, QTabWidget или QStackedWidget. В исходниках Qt есть класс WidgetBoxTreeWidget для Qt Designer, но он очень сложный и содержит множество ненужных мне вещей и функциональности.
(http://i.stack.imgur.com/HgSGe.png) Нашёл только простейшую реализацию (http://www.fancyaddress.com/blog/qt-2/create-something-like-the-widget-box-as-in-the-qt-designer/) подобного, и тогда решил написать свою реализацию с использованием QTreeWidget. Был создан простой виджет и расширение для Qt Designer, поместил его на GitHub, если он понадобится ещё кому-нибудь или кто-то захочет его улучшить: https://github.com/akontsevich/WidgetBox. Виджет полностью готов к использованию, однако некоторые моменты хотелось бы улучшить:
Надеюсь на помощь или советы сообщества по этим улучшениям. Примеры скриншотов виджета на данный момент времени: (http://i.stack.imgur.com/WXXbS.png) (http://i.stack.imgur.com/7S6dp.png) Название: Re: WidgetBox аля Qt Designer (creator) Отправлено: Racheengel от Март 17, 2016, 01:11 http://qt-apps.org/content/show.php/QSint+Widgets+Collection?content=162296
QSint::ActionPanel и другие :) Название: Re: WidgetBox аля Qt Designer (creator) Отправлено: AlekseyK от Март 17, 2016, 01:42 http://qt-apps.org/content/show.php/QSint+Widgets+Collection?content=162296 Ну и где ты раньше был?! :) Спасибо, посмотрим. Надо было сначала сюда вопрос поместить, а не на stackoverflow. :) И плугины для Qt Designer есть! А оно ещё развивается? Исходники есть только на qt-apps.org или есть хранилище какое-то?QSint::ActionPanel и другие :) Название: Re: WidgetBox аля Qt Designer (creator) Отправлено: AlekseyK от Март 17, 2016, 02:38 Видимо давно не развивается, ещё для Qt4 сделано: плугин для Qt Designer собрался, но не установился автоматом, а когда доставил его ручками, не подхватился Qt Designer.
Но в общем идея понятна, спасибо: я немного усложнил и создал себе проблемы: лучше сделать категорию (expandable) с одной страницей и набрать таких виджетов (категория+страница) столько, сколько нужно, например соединив через QVBoxLayout. Ещё вопрос тут: если надо на этом виджете разметить другие, как Qt Designer (Creator) поймут, на каком виджете категория или страница размещать дочерние виджеты? С QDesignerContainerExtension это понятно - там напрямую виджет указывается (см. мои исходники), а как здесь? В ActionPanel Example - задаётся вручную, а как об этом сказать Qt Designer? Название: Re: WidgetBox аля Qt Designer (creator) Отправлено: Racheengel от Март 18, 2016, 02:51 А там по моему в дизайнере оно вообще не работало... так что приходилось все ручками цеплять.
Но проект точно развивается, хотя и не спеша. В FreeCad эту штуку везде юзают :) Название: Re: WidgetBox аля Qt Designer (creator) Отправлено: AlekseyK от Март 21, 2016, 16:33 Ручками не подходит, не только мне его использовать. А где оно развивается, репозиторий есть?
Название: Re: WidgetBox аля Qt Designer (creator) Отправлено: Racheengel от Март 21, 2016, 18:05 https://sourceforge.net/p/qsint/code/HEAD/tree/
Название: Re: WidgetBox аля Qt Designer (creator) Отправлено: AlekseyK от Март 21, 2016, 18:15 Ладно, спасибо, посмотрим, может допилят до вменяемого состояния, может даже поучаствуем в доработке плагинов. Пока буду свой использовать виджет, нужно только сделать доделать автоматическое изменение размеров виджетов (itemWidget): для top level работает автоматом, для child item нужно почему-то ручками делать.
Название: Re: WidgetBox аля Qt Designer (creator) Отправлено: AlekseyK от Апрель 21, 2016, 22:13 Допилил свой виджет до вполне вменяемого состояния, думаю можно пользоваться. В Qt Designer-e работает отлично, кое какие вещи конечно будем ещё улучшать. Cкачать можно отсюда: https://github.com/akontsevich/WidgetBox
|