前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Qt官方示例-NFC留言板

Qt官方示例-NFC留言板

作者头像
Qt君
发布2023-03-17 14:50:46
2.5K0
发布2023-03-17 14:50:46
举报
文章被收录于专栏:跟Qt君学编程

一个有关NFC数据交换格式(NDEF)消息的QML示例。

  QML留言板示例演示从NFC标签读取的NDEF消息的内容。每个新检测到的NDEF消息都会添加到软木板中,并且可以拖动到木板上的任意位置。软木板具有个人和工作空间。可以通过向左或向右滑动来更改工作区。

demo.gif

1. 实现细节

在NFC留言板示例中,我们使用以下.qml文件:

代码语言:javascript
复制
corkboards.qml
Mode.qml

  main.cpp包含应用程序逻辑,以加载存储在corkboards.qml文件中的主视图。

代码语言:javascript
复制
int main(int argc, char *argv[])
{
    QGuiApplication application(argc, argv);
    QQuickView view;
    view.setSource(QUrl("qrc:/corkboards.qml"));
    view.setResizeMode(QQuickView::SizeRootObjectToView);
    view.show();
    return application.exec();
}

2. corkboards.qml实现

  此文件中有两个基本的QML组件:

  • NearField
  • ListView

  首次实例化NearField QML类型时,Component.onCompleted处理程序将启动NFC轮询过程。onMessageRecordsChanged处理函数解析由NearField组件检测到的NFC消息,并建立传递到ListView的数据模型。此外,每次NearField管理器停止轮询过程时,onPollingChanged处理程序都会重新启动它。

代码语言:javascript
复制
NearField {
    property bool requiresManualPolling: false
    orderMatch: false

    onMessageRecordsChanged: {
    ...
    onPollingChanged: {
    ...
    Component.onCompleted: {
    ...
    }

  ListView组件将ListModel作为参数(从NFC记录构建)。模型的每个项目的视图都由Mode组件定义(其实现详细信息可以在Mode.qml文件中找到)。数据模型由软木板列表组成。每个软木板可以显示多个NFC文本消息记录

代码语言:javascript
复制
ListView {
    id: listView
    ...
    model: list
    ...
    delegate: Mode {}
}

3. Mode.qml实现

  每个项目的软木板标题:

代码语言:javascript
复制
Text {
    anchors { horizontalCenter: parent.horizontalCenter; top: parent.top; topMargin: 10}
    text: name;
    font { pixelSize: 30; bold: true }

  从NFC消息中读取的每个文本记录都由一个便签表示,并在显示屏上具有自己的位置。最初,位置是随机设置的。便笺上的文本设置在TextField上。

代码语言:javascript
复制
Repeater {
    model: notes
    Item {
        id: stickyPage

        x: ListView.width * (0.7 * Math.random() + 0.1)
        y: ListView.height * (0.7 * Math.random() + 0.1)
        ...
        Item {
            id: sticky
            ...
            TextEdit {
                id: myText
                text: noteText
                ...
            }
            ...

关于更多

  • QtCreator软件可以找到:
  • 或在以下Qt安装目录找到:
代码语言:javascript
复制
C:\Qt\{你的Qt版本}\Examples\{你的Qt版本}\nfc
  • 相关链接
代码语言:javascript
复制
https://doc.qt.io/qt-5/qtnfc-corkboard-example.html
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Qt君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 实现细节
  • 2. corkboards.qml实现
  • 3. Mode.qml实现
  • 关于更多
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档