• 8637阅读
  • 10回复

QQ好友列表用不用Model View?·  [算解决了] [复制链接]

上一主题 下一主题
离线抠涕
 
只看楼主 正序阅读 楼主  发表于: 2010-04-20
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —


大家好, delegate 能不能让 一个 Item 里面有 图片, 文字, button 等等?
如图。。。像QQ好友列表一样, 点头像可以聊天啦, 点空间图标可以打开QQ空间之类的。

现在只会用widget 来做。。。貌似不太好的样子
大家看用什么建议?
谢谢~



=== UPDATE ===
setIndexWidget() 也是创建很多个widget, 放弃之。

粗略试了一下delegate,
1. 重载paint() sizeHint(), 给每个 Item 画上头像,按钮背景图(假象), 名字等。
2. 重载createEditor() , 创建一个真正的 Item, 里面 的 按钮是真实的了。(model 要可写)
3. 在view里设置让Item 选中就进入 EditRole, 显示 真实的 Item

这样, 平时delegate只是画图, 选中一个Item后才创建一个 widget。

目前有个小问题没研究:
拖动View的滚动条或者用鼠标滚轮滚动 ListView, Item 会离开EditRole模式。。。
也许是 setTriggers() 没设置好。或者焦点没处理好。

重点转移,先到这吧。
[ 此帖被抠涕在2010-04-26 16:40重新编辑 ]
离线oscarboycn

只看该作者 10楼 发表于: 2011-04-21
建议研究MVC结构做
http://www.21ic.com
http://bbs.eetop.cn
http://www.eetop.cn/
http://www.eet-china.com/
http://www.netyi.net/
http://www.pcbbbs.com/
http://www.pcbtech.net/
离线抠涕
只看该作者 9楼 发表于: 2010-04-26
结贴。
离线抠涕
只看该作者 8楼 发表于: 2010-04-21
并不是不喜欢~哈

我找时间尝试 setIndexWidget()
离线xtfllbl

只看该作者 7楼 发表于: 2010-04-21
多建几个widget问题不大,你如果就是不喜欢widget的话,那得重写model,来实现你的model view,相对而言其实差不多,item一样也要new很多的,最后记得delete,万事ok。
上海欢迎您
离线yangfanxing
只看该作者 6楼 发表于: 2010-04-21
QQ也是这样的吧~
Widget可以设置scrollBar,使只显示部分~
PHPWind好恶心。。。不想看这种界面。。。
离线抠涕
只看该作者 5楼 发表于: 2010-04-21
嗯,现在直接用widget , 然后有多少好友就建了多少个。。。这样好友一多,很恐怖的。。。
据说 delegate 只绘能显示的数目, 多余的在滚动的时候才绘出来。

XChinux 说的是指 QAbstractItemView::setIndexWidget()  么?
但是这样, 也是一开始就要给每个 index 设置一个 widget 吧,
这样也是有多少好友就建多少个widget (莫非是不能避免的。)


To jerychang:
现在是讨论阶段,呵呵
离线xtfllbl

只看该作者 4楼 发表于: 2010-04-21
引用第3楼XChinux于2010-04-21 11:33发表的  :
你可以自定义一个widget,将widget放到某个单元格中吧。

楼主说了,现在就是用的widget做的。。
上海欢迎您
离线XChinux

只看该作者 3楼 发表于: 2010-04-21
你可以自定义一个widget,将widget放到某个单元格中吧。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线jerychang
只看该作者 2楼 发表于: 2010-04-21
有难度,做好后发布上来让俺们看看
QT HAO..
离线xtfllbl

只看该作者 1楼 发表于: 2010-04-21
1个item有难度的
上海欢迎您
快速回复
限100 字节
 
上一个 下一个