当前位置: 首页 > news >正文

门户网站模板 图片WordPress5分钟建站

门户网站模板 图片,WordPress5分钟建站,网站建设找云尚网络,西宁网络公司做网站哪家好目录 一. 概要 二. 技术栈 三. 系统功能设计 3.1 功能模块 3.2 数据表设计 四. 具体实现 4.1 Qt 服务端 4.1.1 初始化 WebSocket 服务器 4.1.2 用户管理界面 4.2 微信小程序端 4.2.1 注册功能 4.2.2 登录功能 五. 运行效果 六. 源码下载 一. 概要 在物联网和智能设备…

目录

一. 概要

二. 技术栈

三. 系统功能设计

3.1 功能模块

 3.2 数据表设计

四. 具体实现

4.1 Qt 服务端

4.1.1 初始化 WebSocket 服务器

 4.1.2 用户管理界面

 4.2 微信小程序端

4.2.1 注册功能

 4.2.2 登录功能

五. 运行效果

六. 源码下载


一. 概要

在物联网和智能设备管理领域,用户管理系统是一个核心模块。本文将介绍如何通过 Qt 和 微信小程序实现一个用户管理系统,其中Qt服务端运行在嵌入式Linux设备IMX6ULL上,支持用户和运维人员的注册与登录功能,并将数据存储到开发板设备的SQLite 数据库中。通过 WebSocket 实现实时通信,确保数据的高效传输。支持微信小程序端和Qt服务端同时对用户的个人信息数据进行增删改查操作。在微信小程序注册时,将数据通过WebSocket写入到开发板的SQLite数据库中,在进行登陆时,通过WebSocket校验输入的用户名和密码与开发板SQLite数据库中的数据进行对比,当数据存在且正确是可登陆进系统。如下为IMX6ULL服务端:

                                                                IMX6ULL服务端

二. 技术栈

  • Qt服务端:用于开发桌面端管理界面,提供用户和运维人员数据的展示和管理功能。
  • 微信小程序:作为移动端入口,提供用户注册和登录界面,登录成功后跳转到对应的界面。
  • WebSocket:实现微信小程序与 Qt 服务端的实时通信,用于存储和校验开发板服务端数据库中的数据。
  • SQLite:轻量级数据库,用于存储用户信息。

三. 系统功能设计

3.1 功能模块

1. 用户注册:

  • 用户通过微信小程序填写用户名、密码和角色(用户或运维人员)。
  • 数据通过 WebSocket 发送到开发板Qt服务端,并存储到 SQLite 数据库。

2. 用户登录:

  • 用户通过微信小程序输入用户名和密码。
  • Qt服务端验证用户信息,返回登录结果。

3. 用户管理:

  • Qt服务端提供管理人员对用户和运维人员的个人信息进行增删改查等的操作。

 3.2 数据表设计

在 SQLite 中创建 users 表,存储用户信息,其中包括用户的id,用户名,用户密码,用户角色(用于标识用户和运维人员):

CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT,username TEXT NOT NULL UNIQUE,password TEXT NOT NULL,role TEXT NOT NULL
);

四. 具体实现

4.1 Qt 服务端

4.1.1 初始化 WebSocket 服务器

在Qt程序中创建一个WebSocket服务器,监听来自微信小程序的连接请求。以下为建立服务端的主要代码:

// WebSocketServer.h
class WebSocketServer : public QObject {Q_OBJECT
public:explicit WebSocketServer(quint16 port, QObject *parent = nullptr);~WebSocketServer();private slots:void onNewConnection();void onMessageReceived(const QString &message);private:QWebSocketServer *m_server;QList<QWebSocket *> m_clients;
};// WebSocketServer.cpp
WebSocketServer::WebSocketServer(quint16 port, QObject *parent): QObject(parent), m_server(new QWebSocketServer("UserManager", QWebSocketServer::NonSecureMode, this)) {if (m_server->listen(QHostAddress::Any, port)) {connect(m_server, &QWebSocketServer::newConnection, this, &WebSocketServer::onNewConnection);qDebug() << "WebSocket server started on port" << port;} else {qWarning() << "Failed to start WebSocket server";}
}void WebSocketServer::onNewConnection() {QWebSocket *client = m_server->nextPendingConnection();connect(client, &QWebSocket::textMessageReceived, this, &WebSocketServer::onMessageReceived);m_clients.append(client);qDebug() << "New client connected";
}void WebSocketServer::onMessageReceived(const QString &message) {QWebSocket *client = qobject_cast<QWebSocket *>(sender());if (client) {qDebug() << "Received message:" << message;// 处理消息并返回响应client->sendTextMessage("Message received");}
}
 4.1.2 用户管理界面

在用户和运维人员个人信息管理界面中,使用 QTableView 和 QSqlTableModel 实现用户信息的展示和管理。如下为对用户运维人员个人信息管理的主要逻辑代码段:

// MainWindow.cpp
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupUi(this);// 初始化 WebSocket 服务器m_webSocketServer = new WebSocketServer(8080, this);// 初始化 SQLite 数据库QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", "mainwindow_connection");db.setDatabaseName("user.db");if (!db.open()) {qWarning() << "无法打开数据库";return;}// 初始化表格模型m_model = new QSqlTableModel(this, db);m_model->setTable("users");m_model->select();ui->tableView->setModel(m_model);// 调整列宽和布局ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);// 连接按钮信号槽connect(ui->addButton, &QPushButton::clicked, this, &MainWindow::onAddUser);connect(ui->deleteButton, &QPushButton::clicked, this, &MainWindow::onDeleteUser);connect(ui->updateButton, &QPushButton::clicked, this, &MainWindow::onUpdateUser);connect(ui->refreshButton, &QPushButton::clicked, this, &MainWindow::onRefreshButtonClicked);
}

 4.2 微信小程序端

4.2.1 注册功能

通过 WebSocket 发送注册请求到 Qt 服务端。如下为register,注册逻辑主要实现代码段:

// register.js
Page({data: {username: '',password: '',role: '用户'},onRegister: function () {const { username, password, role } = this.data;const message = JSON.stringify({type: 'register',username,password,role});wx.connectSocket({url: 'ws://192.168.10.100:8080'});wx.onSocketOpen(() => {wx.sendSocketMessage({data: message});});wx.onSocketMessage((res) => {const response = JSON.parse(res.data);if (response.success) {wx.showToast({title: '注册成功',icon: 'success'});} else {wx.showToast({title: response.message,icon: 'none'});}});}
});
 4.2.2 登录功能

通过 WebSocket 发送登录请求到 Qt 服务端。如下为登录login.js的主要逻辑代码段。

// login.js
Page({data: {username: '',password: ''},onLogin: function () {const { username, password } = this.data;const message = JSON.stringify({type: 'login',username,password});wx.connectSocket({url: 'ws://192.168.10.100:8080'});wx.onSocketOpen(() => {wx.sendSocketMessage({data: message});});wx.onSocketMessage((res) => {const response = JSON.parse(res.data);if (response.success) {wx.showToast({title: '登录成功',icon: 'success'});} else {wx.showToast({title: response.message,icon: 'none'});}});}
});

五. 运行效果

首先完成对Linux端编写的Qt服务端代码经过交叉编译后通过scp命令挂载到ip为192.168.10.50的IMX6ULL嵌入式设备上,如下:

确保挂成功:

随后在微信小程序端进行用户的注册:

 同时在注册成功时通过WebSocket将个人数据写入到服务端的数据库中:

 注册成功后跳转到登陆界面,在登陆成功后跳转到用户界面:

对于运维人员的注册于登录亦是如此。 

六. 源码下载

Qt端源码Qt_Server,微信小程序端源码QtApp_demo2,源码已上传至我的gitee代码仓库,有需要请自取:

https://gitee.com/liu-jixwa/mytest

http://www.yayakq.cn/news/919869/

相关文章:

  • 公司网站模板设计云南省住房与城乡建设厅网站
  • 自己模板做网站企业网站模板公司
  • 网站更新的意义唐山做网站公司
  • 上传了网站标志 功能链接广州10大网站服务品牌
  • 网站页面设计需要遵循的六大原则做贷款的网站
  • 河南省建设劳动学会网站南京安居建设公司
  • 清华科技园的网站谁做的中国制造网外贸网官网登录
  • 网站建设宣传软文范例什么是域名 空间 网站源代码
  • 网站建设状况涵江网站建设
  • 简述网站设计步骤浙江建设信息港打不开
  • 东莞数据线厂家东莞网站建设网络app制作网站有哪些内容
  • 网站后台 设计wordpress论坛实例
  • 做网站专题页需要注意什么品牌工厂网站建设
  • 上海注册公司注册资金网站文章优化流程方案
  • 怎么样推广自己的网站好多钱网站
  • 徐州市铜山新区建设局网站seo教程 seo之家
  • 网站建设公司岳阳石家庄心雨网站建设
  • 杭州企业建站程序网站源码 com大全
  • 广州建设信息网官方网站南宁做网站科技公司
  • 大学建设网站的意义企业建设网站需要注意什么手续
  • windows 2008 iis添加网站邓州十九张麻将微信群app开发公司
  • 国外做节目包装的网站济南网站建设选搜点网络
  • 如何维护自己公司网站威海做网站的公司有哪些
  • 撰写网站建设规划设计任务书义乌门户网站建设
  • 网站建设项目详情wordpress pro版
  • 问答类网站怎么做网络营销专业专升本
  • 一个空间2个网站代码phicomm怎么做网站
  • 网站域名注册商标北京网站建设曝光尚词网
  • c 做注册网站dw可以制作网站吗
  • 多国语言网站模板php网站如何绑定一级域名到子目录