Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: NetWorm от Апрель 01, 2012, 11:40



Название: Нестандартные QToolBox
Отправлено: NetWorm от Апрель 01, 2012, 11:40
Необходимо сделать что-то вроде вот этого
(http://content.screencast.com/users/NetWorm/folders/Jing/media/8cec5127-40eb-412c-aacd-a8aae452176a/2012-04-01_1536.png)

т.е. оно вроде напоминает toolBox, только тут одна особенность что может быть просто кнопка без разворачивания страницы, как например кнопка "Сегодня"... Кто что посоветует?


Название: Re: Нестандартные QToolBox
Отправлено: Nimbus от Апрель 01, 2012, 11:56
css или paintEvent. На твой вкус ;-)


Название: Re: Нестандартные QToolBox
Отправлено: NetWorm от Апрель 01, 2012, 11:58
css это-то понятно но как заставить при нажатии на кнопку, страница не открывалась


Название: Re: Нестандартные QToolBox
Отправлено: GreatSnake от Апрель 01, 2012, 12:02
Посмотри это (http://qt-apps.org/content/show.php/iisTaskPanel?content=79286) или это (http://qt-apps.org/content/show.php/QSint+Widgets+Library?content=137786).


Название: Re: Нестандартные QToolBox
Отправлено: V1KT0P от Апрель 01, 2012, 15:33
т.е. оно вроде напоминает toolBox, только тут одна особенность что может быть просто кнопка без разворачивания страницы, как например кнопка "Сегодня"... Кто что посоветует?
Если хочешь сделать красивости то QtQuick. Если нет необходимости в плавном открытии и подойдет мгновенное открытие, то можно использовать тупо layout-ы. Делать их видимыми и не видимыми, но это уже будет некрасивое и ужасное решение. Зато такое моментально делается без квика.


Название: Re: Нестандартные QToolBox
Отправлено: _OLEGator_ от Апрель 01, 2012, 17:02
Можно же еще QTreeView + QSS + делегат замутить.


Название: Re: Нестандартные QToolBox
Отправлено: NetWorm от Апрель 01, 2012, 17:06
Меня больше интересует не вид! А именно то чтобы можно было добавлять кнопку без странички... т.е. просто кнопку


Название: Re: Нестандартные QToolBox
Отправлено: Kurles от Апрель 01, 2012, 17:09
т.е. оно вроде напоминает toolBox, только тут одна особенность что может быть просто кнопка без разворачивания страницы, как например кнопка "Сегодня"... Кто что посоветует?
Если хочешь сделать красивости то QtQuick. Если нет необходимости в плавном открытии и подойдет мгновенное открытие, то можно использовать тупо layout-ы. Делать их видимыми и не видимыми, но это уже будет некрасивое и ужасное решение. Зато такое моментально делается без квика.
Можно же вместо делания их моментально видимым и невидимым использовать QPropertyAnimation для плавного разворачивания виджета.


Название: Re: Нестандартные QToolBox
Отправлено: V1KT0P от Апрель 01, 2012, 17:26
Меня больше интересует не вид! А именно то чтобы можно было добавлять кнопку без странички... т.е. просто кнопку
Возьми исходник QToolBox и добавь туда эту возможность. Если судить по картинке то еще нужно будет добавить возможность открытия нескольких страничек одновременно. Если тебе подходит стандартный QToolBox, а он не плавно показывает, то используй тупо layout-ы.


Название: Re: Нестандартные QToolBox
Отправлено: ufna от Апрель 01, 2012, 18:12
Имхо проще всего "ручками" пейнтером отрисовать и не мучаться


Название: Re: Нестандартные QToolBox
Отправлено: iroln от Апрель 01, 2012, 18:36
На мой взгляд, подобные проблемы возникают из-за того, что в Qt нет стандартного виджета экспандера (Collapsible panel). Причём смешно, что в самом QtDesigner этот кастомный виджет используется. Вот действительно элемент гуи, которого всё время не хватает, а писать лень (про всякие сторонние виджеты знаю, но всё не то, что надо). QToolBox - это вообще фигня какая-то, которую мне ни разу не удалось где-либо использовать по-человечески, из-за того, что её usability нулевое. Поэтому, думаю, проще написать свой виджет под задачу, дешевле будет.


Название: Re: Нестандартные QToolBox
Отправлено: Igors от Апрель 01, 2012, 18:42
Ну а "раскладушка"-то у Вас есть? Если нет - передерите из исходников Qt Designer. Это неоднократно обсуждалось, помню это был один из моих первых вопросов на форуме. Там хорошо получается через QTreeWidgetItem (если не ошибаюсь). А дальше сделать одну из раскладушек кнопкой - по смыслу не должно быть проблемой, она ведь "уже виджет"


Название: Re: Нестандартные QToolBox
Отправлено: NetWorm от Апрель 01, 2012, 21:22
Копаюсь тут в исходниках QToolBox.

Кто пояснить что означает class QToolBoxPrivate : public QFramePrivate. А именно QFramePrivate проблема в том что если передергивать куски кода, то он ругается именно на этот момент. ошибка: invalid use of incomplete type 'struct QFramePrivate'


Название: Re: Нестандартные QToolBox
Отправлено: V1KT0P от Апрель 01, 2012, 21:43
Копаюсь тут в исходниках QToolBox.

Кто пояснить что означает class QToolBoxPrivate : public QFramePrivate. А именно QFramePrivate проблема в том что если передергивать куски кода, то он ругается именно на этот момент. ошибка: invalid use of incomplete type 'struct QFramePrivate'
Вот смотри что можно сделать с помощью кнопки+лэйаута+виджета: http://rghost.ru/37358540 (http://rghost.ru/37358540).
Вот такой самодельный тулбокс делается очень просто.


Название: Re: Нестандартные QToolBox
Отправлено: kambala от Апрель 01, 2012, 22:56
QFramePrivate как бы намекает, что этот класс не предназначен для использования в своих программах


Название: Re: Нестандартные QToolBox
Отправлено: Kurles от Апрель 01, 2012, 23:37
Вот смотри что можно сделать с помощью кнопки+лэйаута+виджета: http://rghost.ru/37358540 (http://rghost.ru/37358540).
Вот такой самодельный тулбокс делается очень просто.
Так чуть красивее :) http://rghost.ru/37360785 (http://rghost.ru/37360785)


Название: Re: Нестандартные QToolBox
Отправлено: NetWorm от Апрель 02, 2012, 08:48
Вот смотри что можно сделать с помощью кнопки+лэйаута+виджета: http://rghost.ru/37358540 (http://rghost.ru/37358540).
Вот такой самодельный тулбокс делается очень просто.
Так чуть красивее :) http://rghost.ru/37360785 (http://rghost.ru/37360785)

Благодарю за идею. Думаю в этом направлении щас покопаю


Название: Re: Нестандартные QToolBox
Отправлено: NetWorm от Апрель 02, 2012, 10:27
http://www.wysota.eu.org/wwwidgets/ - вот что нашел я с помощью других людей


Название: Re: Нестандартные QToolBox
Отправлено: GreatSnake от Апрель 02, 2012, 14:08
http://www.wysota.eu.org/wwwidgets/ - вот что нашел я с помощью других людей
Интересно, а чем не устроили мои ссылки (http://www.prog.org.ru/index.php?topic=21482.msg148896#msg148896) ???


Название: Re: Нестандартные QToolBox
Отправлено: NetWorm от Апрель 02, 2012, 15:39
http://www.wysota.eu.org/wwwidgets/ - вот что нашел я с помощью других людей
Интересно, а чем не устроили мои ссылки (http://www.prog.org.ru/index.php?topic=21482.msg148896#msg148896) ???

Ну почему же! Я оттуда стянул кое что, но это немного не то что мне нужно, но тоже полезно! Благодарю


Название: Re: Нестандартные QToolBox
Отправлено: NetWorm от Апрель 08, 2012, 20:44
Попытался я тут написать плагин, но нифига не работает... В Дизайнере просто не открывается форма, он вылетает. Опыта в плагинах нет вообще... Исходники прилагаю... Кто посмотрит?


Название: Re: Нестандартные QToolBox
Отправлено: NetWorm от Апрель 11, 2012, 20:44
Вобщем поставил я себе библиотеку wwWidgets там есть виджет QwwTaskPanel. Когда кидаешь на форму в дизайнере оно все прекрасно работает... Но когда компилируешь то просто показывается сам виджет без надписей и прочего...

Вот что получается при компилировании... (http://content.screencast.com/users/NetWorm/folders/Jing/media/ef4164ab-18e5-4521-8dc9-c15ca8588e4b/2012-04-12_0026.png)

А вот что в дизайнере (http://content.screencast.com/users/NetWorm/folders/Jing/media/1059ffbc-50f7-4481-a88a-80a711117538/2012-04-12_0027.png)

Причем в дизайнере реагирует на нажатие кнопок, странички разворачиваются и сворачиваются...


Название: Re: Нестандартные QToolBox
Отправлено: Bepec от Апрель 12, 2012, 06:52
А вы точно установили свои надписи? Или это стандартные?


Название: Re: Нестандартные QToolBox
Отправлено: NetWorm от Апрель 12, 2012, 07:26
Да пробовал и свои надписи и свои значки ставить! Прикол еще в том что в дизайнере оно реагирует на нажатие кнопки, а в собранной программе нет!