新手求助:想做一个基于Qt5和RFID的刷卡考勤系统

PPPPPPi_ 2016-11-17 04:18:12
刚开始学Qt不久,时间又比较急,不想考虑太多了,先简单弄了个ui界面,考虑的就是刷卡之后在电脑上能读到这些信息,然后显示在这些LineEdit上,按确定之后就上传到数据库。求助一步一步大概要怎么做,这几天查了好多东西感觉好乱,压力大,求给点方向方法和希望

...全文
1148 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Uncle_LiL 2017-10-16
  • 打赏
  • 举报
回复
不懂的可以问我
Uncle_LiL 2017-10-16
  • 打赏
  • 举报
回复
我也在做,现在觉得很简单
baidu_39293737 2017-06-24
  • 打赏
  • 举报
回复
第一次接触QT,也打算做这个,同样一头雾水- -
qq_37261559 2017-01-07
  • 打赏
  • 举报
回复
我也正在做这个,一头雾水!
dibovi9576 2016-11-30
  • 打赏
  • 举报
回复
刷卡方面如何获取数据,你还是参照具体的卡机说明书和开发包来做,这个很多种了。。。串口啊,dll啊什么的,获取的数据解析也是按照具体卡机来做,存储到数据库这里可以这样: 以MSSQL举例
//数据库属性配置,按你实际的修改

QString dbDriver = "sql server";
QString dbServer = "192.168.1.1";
int dbPort = 1433;
QString dbDataBase = "db";
QString dbUserName = "sa";
QString dbPassword = "sa";

//连接数据库
QSqlDatabase database;
database = QSqlDatabase::addDatabase("QODBC");

QString dsn = QString("Driver={%1};server=%2;database=%3;uid=%4;pwd=%5").arg(dbDriver).arg(dbServer).arg(dbDataBase).arg(dbUserName).arg(dbPassword);

database.setDatabaseName(dsn);
database.setHostName(dbServer);
database.setPort(dbPort);
database.setUserName(dbUserName);
database.setPassword(dbPassword);

database.open();

//保存数据

QSqlQuery query = QSqlQuery(database);

QString xuehao = ui->numLineEdit->text(); //从你的ui界面相应控件读取数据,用 xuehao.toInt()来获取int数值;
//其他数据获取。。。姓名、性别等,你自己写

//sql语句里面的对应表和数据列名按照你自己实际的来修改一下,后面arg的是你刚才获取的需要存储的实际值;

query.prepare(QString("INSERT INTO dbo.你的表名 (xuehao] ;[xingming] ;[xingbie] ;[其他] ;[STATUS] ;[CREATE_DATE] ;[LOGIN_TIMES] ;[LAST_LOGIN] ;[DEPARTMENT] ;[POSITION]) VALUES ('%1' ;'%2' ;'%3' ;'%4' ;'%5' ;getDate() ;NULL ;NULL ;'%6' ;'%7')")
	.arg(xuehao).arg(xingming).arg(xingbie).arg(其他).arg(stat).arg(department).arg(position));
if(!query.exec()){
    qDebug() << DataBase::currentDatabase().lastError().text();
}

//大概就这些,头文件没有写,缺少什么你就自己导入就行了,项目文件里面别忘记加入 sql
Little柯南 2016-11-22
  • 打赏
  • 举报
回复
串口也好,其他网络通信也好都可以,要是串口通信,一般距离比较短,一次数据量较小,其他倒没什么不可 同理,你还是需要建立协议通过串口发送 在初始化串口时候,你要获取串口名称、波特率、数据位停止位、校验位这些,初始化完毕,然后以你的协议为基础,你发送请求,打卡机内部程序给你返回信息
Little柯南 2016-11-21
  • 打赏
  • 举报
回复
Qt端这个程序不难,新手的话,要加油,要培养信心。
Little柯南 2016-11-21
  • 打赏
  • 举报
回复
打卡机读到的数据格式是一个结构体(按照ARM板子的情况)比如: typedef struct{ char【20】 id;//学号 char【20】name;//姓名 char【5】sex;//性别 char【30】grade;//班级(为了防止与c++的类class产生不好情况,这里写的年纪grade,或者你定义mClass之类也行) char【30】time;//签到时间 } 与打卡机通信,先让打卡机将数据写在数据文件里,你点击需要数据时候,通过udp组播让打卡机把对应数据发给你。然后你把这些数据通过setText的方式写在你的QLineEdit里面,由于是读到数据填进去的,所以QLineEdit最好设置成只读,当然这种通信是需要建立协议的,他发给你的,你需要通过协议解析
PPPPPPi_ 2016-11-21
  • 打赏
  • 举报
回复
引用 2 楼 u010111033 的回复:
打卡机读到的数据格式是一个结构体(按照ARM板子的情况)比如: typedef struct{ char【20】 id;//学号 char【20】name;//姓名 char【5】sex;//性别 char【30】grade;//班级(为了防止与c++的类class产生不好情况,这里写的年纪grade,或者你定义mClass之类也行) char【30】time;//签到时间 } 与打卡机通信,先让打卡机将数据写在数据文件里,你点击需要数据时候,通过udp组播让打卡机把对应数据发给你。然后你把这些数据通过setText的方式写在你的QLineEdit里面,由于是读到数据填进去的,所以QLineEdit最好设置成只读,当然这种通信是需要建立协议的,他发给你的,你需要通过协议解析
那我可以就是通过读串口得到学号信息之后匹配数据库中这个学号得到学生信息然后显示在各个LineEdit上吗
理想三旬 2016-11-19
  • 打赏
  • 举报
回复
kaoqing? 你知道打卡机器传过来的数据格式吗?

16,202

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧