温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
&&& 简单分析下QQ好友列表构成,好友列表由2个部分组成,一个是组,另一个是组里面的项。这样的话我们可以使用按钮和列表组合的方式完成好友列表。&&& 下面我们分别开始写按钮和列表:1. Button的实现&&& 我们现在新建一个名为“GroupButton”的qml文件,如下图所示:& 然后,我们将GroupButton设计成下图所示的界面:2. 好友列表的实现&&& 我们新建一个名为"Friends"的qml文件,在这个文件中我们使用QML中的ListView来实现好友列表。好友列表的设计如下图所示:&&& 在上图中的选中项和非选中项,我们可以通过状态机来实现,并且可以很简单的做上动画。完成了上面的布局,我们最后来完成MyList.qml。&&& 在MyList.qml中我们使用QML中的Column来完成组和列表的组装。下面用简单脚本说明:Column {
GroupButton {}
Friends {}
GroupButton {}
Friends {}
GroupButton {}
Friends {} }
在这里,我们可以很简单的做到将每个组对应的列表进行显示和隐藏,从而达到QQ好友列表的效果。
并且我们通过Column可以很容易做到如下图所示的动画:&&& 好了,就写到这里,如果你有更好的想法,我希望你能给我留言,一起分享。ps: 文章所涉及的东西非常简单,如果实际使用的话,会涉及到好友列表的不确定性,我们需要动态创建好友列表,这都是能实现的。另外,我们可以使用QML和C++结合的方法,使我们的应用程序更加灵活,更加安全。
阅读(1817)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'开始用QML写程序--QQ好友列表',
blogAbstract:'&&& 很多人在开始用C++写第一个窗口程序的时候,都有一种趋势,就是想做一个像QQ一样的局域网聊天程序,通过相关资料,可能在2天内,就能写出一个能在局域网通信的软件,于是乎就考虑增加像QQ一样能同时跟多个人聊天的功能,于是乎就想做一个跟QQ好友类似的列表,看似简单,但一动手的时候,却又无从下手。下面我就以QML做了一个类似QQ好友列表的界面,希望能与朋友们一起分享学习。&&& 首先,我们使用QtCreator创建一个名为MyList的Qt Quick UI的项目,如下图所示:',
blogTag:'qt,qml',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:9,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}