标题:窗口滚动的问题
作者:herry
日期:2010-08-10 18:44
内容:
各位大虾,小弟有一问题,困惑多日,仍不能解。忘大家赐教
需求:实现类似qq好友列表的功能,
数据显示:每一个好友的显示是:左边一个图标,右边2行数据,和qq好友列表一样。当好友很多,一屏显示不下时,需要可以滚动,并且显示滚动条,用户可以通过拖动滚动条来浏览好友列表,也可以通过用手滑动好友列表进行浏览(触摸屏)。
小弟现在自定义了一个控件用于每一个好友的显示,数据管理,然后将这些控件加载到QScrollArea里,通过它实现窗口的滚动,现在是显示没问题,通过滚动条也可以实现平滑滚动,但是当用手滑动时,不能实现平滑滚动(即不能看见滑块的滚动痕迹),一下就滚动到目标位置,感官上不是很好。
下面是滚动的部分代码:
void MyScrollArea::mouseMoveEvent ( QMouseEvent * e )
{
if(!isNeedScroll)
return;
QTime time = QTime::currentTime();
int distance = e->pos().y() - lastPoint.y();
long millSecond = (time.second() - lastTime.second()) * 1000 + time.msec() - lastTime.msec();
if(millSecond != 0)
{
moveSpeed = distance / millSecond;
}
if(moveSpeed < 2)
{
moveSpeed = 3;
}
else if(moveSpeed < 4)
{
moveSpeed = 5;
}
else
{
moveSpeed = 7;
}
setScrollOffset(distance);
lastPoint.setY(e->pos().y());
lastTime = QTime::currentTime();
}
void MyScrollArea::setScrollOffset (int offset)
{
int curValue = verticalScrollBar()->value();
if(offset > ..
#1 [denggang0828 08-12 00:02]
滚动应该不会有问题
这是symbian系统自己定义好的
可能是你封装控件时出问题了
#2 [denggang0828 08-13 09:41]
楼主 能发一下你的源码吗 我现在也想做一个好友列表的东西
不胜感激
denggang0828@163.com
#3 [herry 08-17 11:33]
代码已发
#4 [herry 08-17 11:37]
我现在用QListWidget实现,问题是,我给每一个item都设置背景,当一个item获取焦点时,我希望更换它的背景达到提示的效果,问题是,现在一个item得到焦点后,它被另外一种颜色遮挡,根本看不到背景,我该怎么做?