Название: Реализация облака тегов - как? Отправлено: PavelVX от Сентябрь 22, 2011, 11:03 Подскажите, как сделать виджет типа облака тегов?
То-есть в этом виджете набор слов, по которым можно щелкать и получать значение/само слово в каком-нить слоте. Отличный пример данного виджета стартовое окно QtCreator 2.3.0, когда выбираем начало-список меток! Название: Re: Реализация облака тегов - как? Отправлено: Странник от Сентябрь 22, 2011, 11:42 в облаке тэгов обычно еще размер шрифта к популярности привязан, с этим будет сложнее. но если вам так нравится виджет из Qt Creator - посмотрите его исходники. скорее всего реализовано через QLabel/QTextBrowser и сигнал linkActivated (каждое слово - отдельная гиперссылка).
Название: Re: Реализация облака тегов - как? Отправлено: PavelVX от Сентябрь 22, 2011, 12:37 Дак в том-то и проблема, я не знаю что это за пример! И есть ли это в примерах.
Я вижу не пример, а просто виджет со ссылками при нажатии начало->(внизу справа)список меток! На скрине это правая часть. Название: Re: Реализация облака тегов - как? Отправлено: Pretorean от Сентябрь 22, 2011, 12:41 в линуксовом креаторе этого нету, покрайнемере в 2.1 )))
попробуй QWebView и в него html. хотя может и обычной лейблы хватит Название: Re: Реализация облака тегов - как? Отправлено: PavelVX от Сентябрь 22, 2011, 12:54 такс, похоже начинаются недопонимания. Попробую объяснить задачу, может мне что-нибудь правильное и посоветуют.
Упрощенно: есть база с картинками которые тегизировали. И нужно показать все эти теги. В зависимости от того, какое слово нажали, нужно отобразить нужную картинку. Упрощенно так :) Конечно с разными шрифтами было бы хорошо, но просто облако бы тоже хватило. Самые распространенные теги просто пускать самыми первыми и все. Поэтому html тут не нужен. Это я по аналогии назвал облаком тегов. Название: Re: Реализация облака тегов - как? Отправлено: Kolobok от Сентябрь 22, 2011, 13:27 QListView
Название: Re: Реализация облака тегов - как? Отправлено: alex312 от Сентябрь 22, 2011, 14:26 А я бы начал скрещивать вот это (http://doc.qt.nokia.com/4.8-snapshot/animation-animatedtiles.html) с этим (http://doc.qt.nokia.com/4.8-snapshot/qgraphicstextitem.html).
Название: Re: Реализация облака тегов - как? Отправлено: PavelVX от Сентябрь 23, 2011, 05:19 Kolobok, это как?
Похоже проще будет создать тему с вопросом: опознайте виджет :) Название: Re: Реализация облака тегов - как? Отправлено: Bepec от Сентябрь 23, 2011, 07:43 Все решается на уровне бутерброда(если не лезть в дебри и оптимизацию).
Берется словарь структур - на манер Код: { И динамически создаешь массив надписей со словами из списка (тегов короче). Связываешь все метки, сигнал mousePressEvent со своим слотом. И при нажатии циклически прогоняешь по массиву картинок. Если в Код: QStringList label; Как показывать уже сам решай. PS решение простейшее, не претендует на элегантное. Название: Re: Реализация облака тегов - как? Отправлено: Странник от Сентябрь 23, 2011, 09:23 такс, похоже начинаются недопонимания. Попробую объяснить задачу, может мне что-нибудь правильное и посоветуют. html тут как раз нужен. простейший способ:Упрощенно: есть база с картинками которые тегизировали. И нужно показать все эти теги. В зависимости от того, какое слово нажали, нужно отобразить нужную картинку. Упрощенно так :) Конечно с разными шрифтами было бы хорошо, но просто облако бы тоже хватило. Самые распространенные теги просто пускать самыми первыми и все. Поэтому html тут не нужен. Это я по аналогии назвал облаком тегов. Код: #include <QApplication> Название: Re: Реализация облака тегов - как? Отправлено: PavelVX от Сентябрь 23, 2011, 09:56 Странник, у меня к вам 2 попутных вопроса :)
1. Ни кого не хочу обидеть, но по количеству полезных советов, вы один из первых. Если вы в Новосибирске, то куда вам подвезти пиво? :) 2. По существу, мой ламерский вопрос: есть n кнопок, и один слот, куда эти кнопки должны посылать сигнал о нажатии со своим индексом. Как это сделать сразу в connect? Или все равно придется писать отдельные слоты для кнопок, где делать вызовы с индексом? Название: Re: Реализация облака тегов - как? Отправлено: Пантер от Сентябрь 23, 2011, 09:58 2. http://doc.qt.nokia.com/4.7-snapshot/qsignalmapper.html (http://doc.qt.nokia.com/4.7-snapshot/qsignalmapper.html)
Название: Re: Реализация облака тегов - как? Отправлено: Kolobok от Сентябрь 23, 2011, 10:04 Kolobok, это как? Похоже проще будет создать тему с вопросом: опознайте виджет :) Ставишь в QListView режим QListView::LeftToRight. В модели определяешь роль, которая возвращает вес элемента. Соединяешь сигнал clicked(..) вьюшки со своим слотом. И всё. :) Название: Re: Реализация облака тегов - как? Отправлено: panAlexey от Сентябрь 23, 2011, 10:20 Отличный пример данного виджета стартовое окно QtCreator 2.3.0, когда выбираем начало-список меток! Фигово они сделали - поиска нет.Мне больше нравится http://forum.mista.ru/find.php На основе html можно хоть поиском воспользоваться. Название: Re: Реализация облака тегов - как? Отправлено: Странник от Сентябрь 29, 2011, 17:41 Странник, у меня к вам 2 попутных вопроса :) далеко мне до Новосибирска, спасибом обойдусь = ) что касается кнопок, то можно и QSignalMapper использовать, как советовали выше, а можно просто в слоте через метод sender() получать указатель на объект-отправитель и запрашивать его индекс. у QAction есть удобная пара методов data() и setData(), в случае обычных виджетов можно использовать objectName().1. Ни кого не хочу обидеть, но по количеству полезных советов, вы один из первых. Если вы в Новосибирске, то куда вам подвезти пиво? :) 2. По существу, мой ламерский вопрос: есть n кнопок, и один слот, куда эти кнопки должны посылать сигнал о нажатии со своим индексом. Как это сделать сразу в connect? Или все равно придется писать отдельные слоты для кнопок, где делать вызовы с индексом? Название: Re: Реализация облака тегов - как? Отправлено: gil9red от Ноябрь 10, 2013, 13:02 Update! ;D
http://developer.nokia.com/Community/Wiki/QML_Tag_Cloud |