Russian Qt Forum

Qt => Дополнительные компоненты => Тема начата: cya-st от Ноябрь 09, 2009, 12:26



Название: Разыскивается виджет.
Отправлено: cya-st от Ноябрь 09, 2009, 12:26
Всем привет.
Лист из Skype (я знаю что Skype написан на Qt), как сделать или подскажите готовый похожий виджет.


Название: Re: Разыскивается виджет.
Отправлено: zenden от Ноябрь 09, 2009, 12:32
Fail, Skype for Windows написан на Delphi.

Только Linux версия использует Qt для гуи.


Название: Re: Разыскивается виджет.
Отправлено: cya-st от Ноябрь 09, 2009, 12:40
Fail, Skype for Windows написан на Delphi.
Невжно, это к сути вопроса не относится, я не указывал какой скайп, под виндовс или линукс.


Название: Re: Разыскивается виджет.
Отправлено: spectre71 от Ноябрь 09, 2009, 12:52
Его явно нет в свободном доступе.
Так что бери:
QListView
QAbstractItemModel
QAbstractItemDelegate
И рисуй сам.


Название: Re: Разыскивается виджет.
Отправлено: cya-st от Ноябрь 09, 2009, 13:02
Понятно. А где можно про делегаты почитать? У меня есть книга "М. Шлее Профессиональное программирование ...", но там по делегатам только один пример и тот для редактирования данных.


Название: Re: Разыскивается виджет.
Отправлено: panAlexey от Ноябрь 09, 2009, 13:26
Понятно. А где можно про делегаты почитать? У меня есть книга "М. Шлее Профессиональное программирование ...", но там по делегатам только один пример и тот для редактирования данных.
http://www.doc.crossplatform.ru/qt/4.3.2/model-view-programming.html


Название: Re: Разыскивается виджет.
Отправлено: cya-st от Ноябрь 09, 2009, 13:32
Спасибо всем, буду разбиратся.


Название: Re: Разыскивается виджет.
Отправлено: break от Ноябрь 09, 2009, 14:04
может просто найти шрифт хитрый или нарисовать самому его - и использовать rtf или html выоде "хитрым" шрифтом то что нужно?


Название: Re: Разыскивается виджет.
Отправлено: cya-st от Ноябрь 09, 2009, 16:42
Цитировать
может просто найти шрифт хитрый или нарисовать самому его - и использовать rtf или html выоде "хитрым" шрифтом то что нужно?
Там получается в одной строке две строки. Как это сделать шрифтом?


Название: Re: Разыскивается виджет.
Отправлено: break от Ноябрь 09, 2009, 17:29
Так хотелось ответить - использовать надстрочный и подстрочный шрифт ;D - но думаю это не прокатит т.к. на позиции одного символа не разместить 2 буквы таким образом...

Я честно говоря не заметил что это 1 строка - мне кажется там вполне могут быть 2 строки... Просто в каждой ячейке использовать маркер конца строки \n или что то подобное - по крайней мере на вашем рисунке ячейка 1 строки 2 - проблем по идее быть не должно.


Название: Re: Разыскивается виджет.
Отправлено: ритт от Ноябрь 10, 2009, 05:58
да ну, что вы сочиняете? примитивно делается рисованием текста в пэинтере делегата.
тут интереснее вопросик - как хранить данные второй строки - в той же ячейке, но другой ролью или роль будет та же (DisplayRole), но для разделения будет использоваться какой-нибудь маркер? /* я бы выбрал первый вариант */


Название: Re: Разыскивается виджет.
Отправлено: SABROG от Ноябрь 11, 2009, 00:46
да ну, что вы сочиняете? примитивно делается рисованием текста в пэинтере делегата.
тут интереснее вопросик - как хранить данные второй строки - в той же ячейке, но другой ролью или роль будет та же (DisplayRole), но для разделения будет использоваться какой-нибудь маркер? /* я бы выбрал первый вариант */

Айтемы вроде как RTF форматирование поддерживают для текста, а там и перенос строк.


Название: Re: Разыскивается виджет.
Отправлено: Kolobok от Ноябрь 13, 2009, 22:31
Самый правильный способ это первый вариант Константина. Только второй ролью здесь не обойдешься. У айтема в примере 6 элементов - 6 ролей.


Название: Re: Разыскивается виджет.
Отправлено: spectre71 от Ноябрь 13, 2009, 23:06
Самый правильный способ это первый вариант Константина. Только второй ролью здесь не обойдешься. У айтема в примере 6 элементов - 6 ролей.

Можно и без ролей. В делегаете получам от "QModelIndex &index" свой объект и рисуем что и как хотим.