|
7Qter豆
# 提问者背景
初学者。不专门学习软件开发,但是偶尔会用到。本科使用C++和Qt做过简单的应用;接触QML两周,学习了坛主分享的Qt Quick教程。
# 问题背景
近期实验需要用QML开发一个简单的二维码扫描的手机应用,但是应用的逻辑有些特殊,与实验设计紧密相关,需要控制扫描应用本身的一些属性,比如“扫描”按钮的有无,开始扫描后的延迟时间。本人能力很有限,不清楚框架怎么搭建比较好,希望有前辈愿意指点迷津!
# 目前实现部分
在Qt creator建立了简单的应用外壳。qml文件包含main.qml和scanPage.qml,scanPage.qml里有camera,videoOutput, scanButton,以及扫码库(用codeFilter指代)。
在main.cpp里注册了codeFilter,可以在scanPage.qml的VideoOutput里应用到filter。
# 希望实现的效果
页面只有2页,初始的介绍页面(已实现)和扫描的页面(目前仅显示取景器和按钮)。
主要流程:实验者依次使用手机扫描墙上的多个二维码,完成若干次后,换到下一位实验者。每一位实验者的情况会有一些区别。
实验者使用取景器扫描目标,扫描完成后的弹窗显示下一个扫描目标,实验者继续扫描,直到弹窗显示“换为下一个实验者”。
实验有两个与应用相关的变量:延迟时间(弹窗跳出的延迟,比如t1, t2 ,t3),扫描方式(点击按钮后开始扫描 Explicit;不显示按钮的自动扫描 Auto)。
由于每个实验者的实验情况都有所不同(比如实验者一号P1是t1 Explicit,t2 Explicit,t3 Explicit,P2是t1 Explicit,t3 Explicit,t2 Explicit),希望应用能够自动控制实验情况,按照规定的顺序切换弹窗跳出的延迟时间以及扫描方式。
此外,还希望记录实验者扫描的时间及对应的实验情况,也即每次codeFilter返回扫描结果的时间+延迟时间+扫描方式+实验者序号等等。这个可能是存储在本地的文本文件里。
# 具体问题
- 如何控制实验情况?- 需要控制的变量有两个,延迟时间以及扫描方式,对应弹窗跳出的时间,和按钮的状态。我是应该在QML文件里用js控制,还是在C++里写一个controller来控制呢?我的“猜想”是,将规定的顺序写好在一个字符串里,每次取一点出来,根据字符内容控制两者。不过不知道怎么具体实现。
- 如何控制弹窗的内容?显示下一次扫描的对象,或是要求换为下一个实验者。这个应该可以在qml里用js实现?
- 如何记录扫描时间,且存储这些信息到本地?大概是需要用C++来实现。
很抱歉问了这么复杂空洞的问题,但实在是我的实验进度卡在了这里,不知道如何展开。导师给了我很多年前的一个扫码库项目,用作我的实验的library,因为原本是Qt项目,便让我也用QML开发。因为我说自己用过Qt他才交给了我。原本觉得这个应用不会太复杂,但是实际做起来才感到无从下手。导师也不熟悉QML,所以只能自己摸索。
希望能有前辈给点思路,或者指路相关的参考案例!非常感谢!
如果对于问题描述有不清楚的地方,请随时提问。
|
|