基于QT的学生信息管理系统软件开发
文章目录
0-源码
先奉上源码地址: QT-Information-Management-System
1-写在前面
软件功能及开发环境:
1-1.实现对excel读取写入功能
1-2.完成从excel文件导入到数据库sqlite的功能
1-3.完成将sqlite数据显示在tableview的功能
1-4.实现对数据库数据查找的功能
1-5.实现截取控件保存为图片功能
1-6.实现自定义软件边框的功能
1-7.本软件是基于QT Creator 4.0.3在win10下开发
2-excel的读取与写入
在设计中主要的功能为写入数据,重点是对开源的excel操作库的运用。关于excel的读写库请参考:qtxlsx
这里还是简单说一下库的加入方法:
2-1.首先到github下载源码以备使用:QtXlsxWriter
2-2.将源码解压到QT工程目录下,可以新建一个文件夹3rdparty存放库文件:
|-- project. pro
|-- …
|-- 3rdparty\
| |-- qtxlsx\
| |
2-3.在完成以上的准备工作之后,将刚刚新建的文件夹路径添加到工程文件中:
include (3rdparty/src/xlsx/qtxlsx.pri)
2-4.添加完成之后就可以通过在文件中添加头文件#include "xlsxdocument.h"
来对excel进行操作
图1为导出excel模板的软件界面:
2-5代码实现:
这里还做了一个按键下拉功能:
/***Function: export excel model*/
void MainWindow::btnExportExcelsetting(void){
connect(exportMenu,SIGNAL(triggered(QAction *)),this,SLOT(onExportMenuTriggered(QAction *)));
exportMenu->addAction(exportMenu_action_scholarship);
exportMenu->addAction(exportMenu_action_stipend);
exportMenu_action_scholarship->setText(QStringLiteral("Export Scholarship model"));
exportMenu_action_stipend->setText(QStringLiteral("Export Stipend model"));
exportMenu->setStyleSheet("font: 8pt ,'Microsoft YaHei'");
ui->btnExportExcel->setMenu(exportMenu);
}
以下是具体的excel写入操作函数
void MainWindow::onExportMenuTriggered(QAction *action){
QXlsx::Document xlsx;
xlsx.write("A1", QStringLiteral("StudentName"));
xlsx.write("B1", QStringLiteral("IDNumber"));
xlsx.write("C1", QStringLiteral("StudentID"));
xlsx.write("D1", QStringLiteral("College"));
xlsx.write("E1", QStringLiteral("Class"));
xlsx.write("H1", QStringLiteral("IssueDate"));
xlsx.write("I1", QStringLiteral("Issuer"));
QString modelFileName;
if (action == exportMenu_action_scholarship){
xlsx.write("F1", QStringLiteral("ScholarshipName"));
xlsx.write("G1", QStringLiteral("ScholarshipAmount"));
QString strModelFile = QStringLiteral("\\ScholarshipModel") + ".xlsx";
modelFileName = QFileDialog::getSaveFileName(this,QStringLiteral("ScholarshipModel"),strModelFile,"EXCEL (*.xlsx)");
}
else if (action == exportMenu_action_stipend){
xlsx.write("F1", QStringLiteral(