Android 和 IOS 上的 Qt 会话管理

2023-12-08

我目前正在使用 Qt Quick Controls 2 开发一个适用于 Android 和 IOS 的应用程序,该应用程序可以登录。帐户凭据将存储到外部 SQL 数据库中。我已经弄清楚如何与数据库交互,但我无法弄清楚如何在 Android 和 IOS 的 Qt 中使用会话,以便用户不需要每次都键入登录凭据。

一种可能的方法是将凭据存储到手机本地的文件中,然后在每次启动应用程序时访问该文件。但是,我不确定这是否是最好和最安全的方法。

Thanks.


Q设置类用于状态管理。 QSettings 信息通常存储在 Windows 上的系统注册表中,以及 macOS 和 iOS 上的属性列表文件中。这是使用 QSettings 存储/检索会话参数的原始示例代码..您可以扩展以包括所需的会话登录管理场景:

main.cpp

int main( int argc, char ** argv ) {
QApplication app( argc, argv );
app.setOrganizationName("myOrg");
app.setOrganizationDomain("myOrg.net");
app.setApplicationName("qsettings-test");
MyMainWindow mw;
mw.show();
return app.exec();
}

然后在你的源.cpp中

void MyMainWindow::readSettings() {
QSettings settings;
QString user = settings.value("UserName");
int lifTime = settings.value("sessionLifeTime").toInt();;
QByteArray state = settings.value("state", QByteArray())
                                               .toByteArray();
restoreState(state);
}

// ...... lots of your code 

void MyMainWindow::closeEvent(QCloseEvent* event) {
if (maybeSave()) {
    writeSettings();
    event->accept();
} else {
    event->ignore();
}
}


void MyMainWindow::writeSettings() {
    /* Save postion/size of main window */
    QSettings settings;
    settings.setValue("sessionLifeTime", 7);
    settings.setValue("UserName", user);
    settings.setValue("state", saveState());
}

您还可以使用以下命令访问 INI 和 PLIST 配置文件Q设置class,对于 Android,可以考虑在构建期间必须复制 INI 文件(存储在 res 文件夹中并将其包含在 .pro 中)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 和 IOS 上的 Qt 会话管理 的相关文章

  • Android OptionsMenu问题,背景始终透明

    我的选项菜单总是不显示背景 背景是透明的 有谁知道如何摆脱这个 我的失败起源活动是从另一个自定义活动扩展的 我在 eclipse 上有这个项目 选项菜单工作正常 但自从我迁移到 AndroidStudio 后 选项菜单始终是透明的 我尝试更
  • 搜索实体的所有字段

    我正在尝试在客户数据库上实现 多功能框 类型的搜索 其中单个查询应尝试匹配客户的任何属性 这是一些示例数据来说明我想要实现的目标 FirstName LastName PhoneNumber ZipCode Mary Jane 12345
  • 如何从图库动态卸载图像?

    我有自定义 ImageView public class ShadowedImageView extends ImageView private Paint mPaint public Bitmap bitmap null private
  • 使用具有抗锯齿功能的 C# 更改抗锯齿图像的背景颜色

    我有一个图像需要更改背景颜色 例如 将下面示例图像的背景更改为蓝色 然而 图像是抗锯齿的 所以我不能简单地用不同的颜色替换背景颜色 我尝试过的一种方法是创建第二个图像 仅作为背景 并更改其颜色并将两个图像合并为一个图像 但是这不起作用 因为
  • 如何使用 NPOI 按地址(A1、A2)获取 Excel 单元格值

    我有一个 Excel 单元格地址 例如 A1 A2 如何使用 C 中的 NPOI 框架以编程方式访问此单元格 我找到的一些 Java POI 示例代码 CellReference cr new CellReference A1 row my
  • 在循环中按名称访问变量

    我正在开发一个 Android 项目 并且有很多可绘制对象 这些绘图的名称都类似于icon 0 png icon 1 png icon 100 png 我想将这些可绘制对象的所有资源 ID 添加到整数 ArrayList 中 对于那些不了解
  • 使用 GCC 生成可读的程序集?

    我想知道如何使用GCC http en wikipedia org wiki GNU Compiler Collection在我的 C 源文件中转储机器代码的助记符版本 这样我就可以看到我的代码被编译成什么 你可以使用 Java 来做到这一
  • 如果我的应用程序安装在 SD 卡上,私人数据也在那里吗?

    我假设应用程序的私有数据 例如 SharedPreferences 和 SQLite 数据库 位于手机的内部存储而不是 SD 卡上 即使应用程序本身安装在 SD 卡上 我在任何地方都找不到对此的简单明确的确认 有人可以确认一下吗 是的 私有
  • Linux mremap 不释放旧映射?

    我需要一种方法将页面从一个虚拟地址范围复制到另一个虚拟地址范围 而无需实际复制数据 范围很大 延迟很重要 mremap 可以做到这一点 但问题是它也会删除旧的映射 由于我需要在多线程环境中执行此操作 因此我需要旧映射能够同时使用 因此稍后当
  • 从浏览器访问本地文件?

    您好 我想从浏览器访问系统的本地文件 由于涉及大量安全检查 是否可以通过某种方式实现这一目标 或使用 ActiveX 或 Java Applet 的任何其他工作环境 请帮帮我 要通过浏览器访问本地文件 您可以使用签名的 Java Apple
  • 在 OpenGL 中渲染纹理 1 到 1

    所以我想做的是使用 OpenGL 和 C 将纹理渲染到平面上 作为显示图像的一种方式 但是我需要确保在渲染纹理时没有对纹理进行任何处理 抗锯齿 插值 平滑 模糊等 这是 OpenGL 处理渲染纹理的默认方式吗 或者是否需要设置一些标志才能禁
  • 后台模式下的 AVSpeechSynthesizer

    我无法获取 iOS 7AVSpeechSynthesizer当我的 iOS 应用程序处于后台模式时工作 我添加了 应用程序播放音频 应用程序支持的后台模式的关键 但我仍然无法让它工作 我还研究了创建一个AVMutableCompositio
  • .NET 4 的条件编译[重复]

    这个问题在这里已经有答案了 可能的重复 条件编译和框架目标 https stackoverflow com questions 2923210 c sharp conditional compilation and framework ta
  • 使用 jQuery 从 ASP.Net JSON 服务获取数据

    我正在尝试调用 Google 地图地理编码 API 从纬度 经度对中获取格式化的地址 然后将其记录到控制台 我正在尝试获取为给定位置返回的第一个 formatted address 项目 我很简单无法从 JSON 中提取该项目 我不知道为什
  • CUDA 8 编译错误 -std=gnu++11

    我正在尝试转换一些代码以使用 CUDA 并且我认为我遇到了兼容性问题 我们使用CMake 这些是我使用的 gcc 和 CUDA 版本 gcc version gcc Ubuntu 5 4 0 6ubuntu1 16 04 5 5 4 0 2
  • 如何在 winforms 应用程序的主屏幕显示之前显示欢迎屏幕?

    我想在应用程序启动时加载欢迎屏幕 然后用户单击欢迎屏幕上的按钮 然后关闭欢迎屏幕 最后显示主屏幕 static void Main startup method being called Application EnableVisualSt
  • 如何解决android程序中的警告“从不本地读取”

    为什么我收到警告说 The field testscreen ScaleAnimToShow mVanishAfter is never read locally testscreen java testscreen src com tes
  • 通过 Tab 键浏览 XML 文档字段

    In VB NET you can move through the fields in the XML member documentation with the Tab key 这在 C 中不起作用 还有其他方法吗 除了用鼠标将光标放在
  • Android 版本低于 Lollipop 时出现 java.lang.NoClassDefFoundError

    我有一台运行 Android 21 的 Nexus 5 设备 我正在测试我的项目 没有任何问题 但是 如果我使用 Google API 19 在模拟器上进行测试 则会显示错误java lang NoClassDefFoundError 如果
  • HTML5 地理定位 - 在 iOS 上无法始终工作

    目前正在使用 HTML5 地理定位 我已经在所有网络浏览器上测试了它 它似乎工作正常 然而 当我在 iPad 上测试地理定位时 它在 iPad mini 上始终有效 但当我将其放在更大的 iPad iPad 2 上时 位置似乎并不总是有效

随机推荐

  • 在 flutter webview 上访问相机

    我有网页显示用户摄像头 如何在 flutter webview 上访问摄像头 我尝试用这个 URL 来做到这一点 https webrtc github io samples src content getusermedia gum 但返回
  • 添加一个将在页面上 echo 到 uniqid 旁边的变量

    我有这个代码
  • Visual Studio 2010:缺少 dll

    我用谷歌搜索了一整天 我快疯了 好吧 这就是我的问题 我已经编写了我的 vs 项目 我已经指定了所有 包含 通过选择项目属性 gt 配置属性 gt VC 目录 和所有外部库目录 以相同的方式 然后 我通过选择项目属性 gt 链接器 gt 输
  • 如何在不影响 Pyqt5 中的小部件的情况下向主窗口添加背景图像

    我想在主窗口中添加背景图像 而不更改其中按钮的背景图像 并且还需要保持纵横比 我尝试过 self centralWidget setStyleSheet background image url The Project logo png b
  • 将 \u200e 解码为字符串

    在 Python3 中 我收到以下错误消息 ValueError time data u200e07 30 200702 38 PM does not match format m d Y I M p from datetime impor
  • 静态类与单例类

    我知道这个话题已经被讨论了一遍又一遍 但我仍然有一个疑问 我希望有人可以帮助我或指导我找到一篇关于 SO 的现有帖子 在传统的C语言中 静态变量存储在数据段中 局部变量存储在堆栈中 我认为与局部变量相比 静态变量的存储和维护成本更高 正确的
  • 如何从标准化数组中获取原始数据

    下面给出了一段简单的代码 它按行规范化数组 import numpy as np from sklearn import preprocessing X np asarray 1 2 1 4 1 2 dtype np float X nor
  • 制作自定义 django 视图装饰器(带参数)时遇到问题

    因此 我阅读了所有类似的问题并复制了他们写的内容 但我仍然遇到问题 所以我想要这样的东西 Yes I know django has one but I want to make my own rate limit seconds 10 m
  • Excel Jet OLE DB:插入日期时间值

    OLEDB 可用于读取和写入 Excel 工作表 考虑以下代码示例 using OleDbConnection conn new OleDbConnection Provider Microsoft Jet OLEDB 4 0 Data S
  • 禁用 Laravel 中的日志记录?

    是否有任何全局配置选项来禁用所有日志记录 我的意思不仅仅是禁用错误记录 我的意思是在调用 Log 时实际上禁用写入文件 如果您不想写入日志文件 您可以简单地注释掉文件中的以下行start global php Log useFiles st
  • 如何在java中使用LinkedHashMap从sql server数据库填充下拉列表

    在 SQL Server 数据库中 我有一个表 其中包含三列 即 Ref Name Ref from 和 Ref to 现在我想要一个下拉列表来按行保存值 即该行的所有列值应按以下方式位于下拉列表中 参考 1 2014 10 10 07 1
  • PostGIS 中的缓冲区(圆形)

    我必须扩展普通的 GeoJSON 格式以添加一些不受支持的多边形 例如圆 type Circle radius 0 001 coordinates 5 417075157165527 43 29129488122568 这是一个例子 坐标标
  • Doctrine2 在复合主键中映射具有复合外键的实体

    我有一个有很多表的模型 但在本例中我们只需要三个 关键是 1 的复合主键也是外键 复合脚趾 Symfony 抛出此异常 MappingException 无法映射实体 你的 SomethingBundle Entity Empleado 使
  • 如何将执行延迟到 os.system 完成之后?

    我在用os system将文件从一个系统复制到另一个系统 一个非常简单的程序的逻辑是在复制该文件后执行另一组命令 问题是os system实际上并不等待文件被复制 而是开始执行下一行 这会导致系统出现问题 我实际上可以通过提供一些等待功能t
  • 将 setHours 设置为零在 NodeJs 中不起作用

    我正在尝试获取当前日期进行比较并将时间设置为零但仍然有时间 var today new Date new Date setHours 0 0 0 0 var todaynew today toISOString console log to
  • 如何将 JSON 响应映射到自定义类对象

    我正在使用 C 调用 APIUnirest io 我得到以下 JSON 响应 如响应体 persons id a010 name Joe subjects Math English id b020 name Jill subjects Sc
  • 使用模态窗口或弹出窗口打开表单

    对此我有些挣扎 我有一个数据表表单 其中列出了每条记录的 ID 和其他信息 到目前为止 我已经找到了一些 VBA 代码 它将每个 ID 作为超链接打开并将其传递到另一个表单中 我遇到的问题是我希望在弹出窗口或模式窗口中打开表单 到目前为止我
  • 如何在 JSF 中的 EL 表达式 #{ } 中写入硬编码字符串值?

    我正在尝试执行以下操作 rendered billBean company equals something 但问题是我不会写 something inside 它会导致以下 XML 解析错误 元素类型 h commandLink 后面必须
  • 指定 jar 的类路径

    我正在尝试配置 JAR 的类路径 以便我的 ResourceBundle 可以从中获取属性文件 如果我从 class 文件运行它并指定 cp标记它工作正常 并且System err println System getProperty ja
  • Android 和 IOS 上的 Qt 会话管理

    我目前正在使用 Qt Quick Controls 2 开发一个适用于 Android 和 IOS 的应用程序 该应用程序可以登录 帐户凭据将存储到外部 SQL 数据库中 我已经弄清楚如何与数据库交互 但我无法弄清楚如何在 Android