为了账号安全,请及时绑定邮箱和手机立即绑定

Qt quick 示例:推特搜索小程序开发

标签:
C++

Qt是一个跨平台框架,通常用作图形工具包,它不仅创建CLI应用程序中非常有用。而且它也可以在三种主要的台式机操作系统以及移动操作系统(如Symbian,Nokia Belle,Meego Harmattan,MeeGo或BB10)以及嵌入式设备,Android(Necessitas)和iOS的端口上运行。现在我们为你提供了免费的试用版。

下载Qt6最新试用版

Qt组件推荐:

  • QtitanRibbon 遵循Microsoft Ribbon UI Paradigm for Qt技术的Ribbon UI组件,致力于为Windows、Linux和Mac OS X提供功能完整的Ribbon组件。

  • QtitanChart :是一个C ++库,代表一组控件,这些控件使您可以快速地为应用程序提供漂亮而丰富的图表。并且支持所有主要的桌面

以下是具有3D效果的Twitter搜索客户端。

https://img1.sycdn.imooc.com/603ee806000128ab02400360.jpg

https://img1.sycdn.imooc.com/603ee80700019c9601800270.jpg

Tweet Search是一个QML应用程序,它使用许多查询参数来搜索发布到Twitter服务的项目。可以搜索来自指定用户的推文,主题标签或搜索短语。

搜索结果是显示推文内容以及发布该推文的用户的名称和图像的项目列表。内容中的标签,名称和链接是可单击的。单击图像将翻转该项目以显示更多信息。

运行示例

要从Qt Creator运行示例,请打开“welcome”模式,然后从“demo”中选择demo。有关更多信息,请访问构建和运行示例。

Tweet Search使用Twitter API v1.1来运行搜索。

请求认证

每个请求都必须代表应用程序进行身份验证。出于演示目的,该应用程序使用硬编码令牌来向Twitter服务标识自己。但是,此令牌受请求数量以及可能到期的速率限制。

如果您在运行演示时遇到身份验证或速率限制问题,请通过在https://dev.twitter.com/apps上注册一个新应用程序来获取一组特定于应用程序的令牌(消费者密钥和消费者密码)。

TweetsModel.qml中输入两个令牌值:

    property string consumerKey : ""
    property string consumerSecret : ""

重建并运行演示。

JSON解析

搜索结果以JSON(JavaScript对象表示法)格式返回。TweetsModel使用XMLHTTPRequest对象发送HTTP GET请求,并在返回的文本字符串上调用JSON.parse()以将其转换为JavaScript对象。然后,将代表推文的每个对象添加到ListModel:

        var req = new XMLHttpRequest;
        req.open("GET", "https://api.twitter.com/1.1/search/tweets.json?from=" + from +
                        "&count=10&q=" + encodePhrase(phrase));
        req.setRequestHeader("Authorization", "Bearer " + bearerToken);
        req.onload = function() {
            var objectArray = JSON.parse(req.responseText);
            if (objectArray.errors !== undefined) {
                console.log("Error fetching tweets: " + objectArray.errors[0].message)
            } else {
                for (var key in objectArray.statuses) {
                    var jsonObject = objectArray.statuses[key];
                    tweets.append(jsonObject);
                }
            }
            wrapper.isLoaded()
        }
        req.send();


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消