#include "mainuiform.h"
#include "ui_mainuiform.h"
#include <_BK/Global/exeGlobal.h>
#include <QMessageBox>
#include <QFileDialog>
mainUIForm::mainUIForm(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::mainUIForm)
{
ui->setupUi(this);
if(PRMS::g_currentRole){
ui->statusbar->showMessage("您现在是管理员权限!");
}
else{
ui->tableWidget->setEditTriggers(QTableWidget::NoEditTriggers);
ui->statusbar->showMessage("您现在是普通权限!");
}
this->showMaximized();
ui->tableWidget->setColumnWidth(0, 400);
ui->tableWidget->setColumnWidth(1, 300);
ui->tableWidget->setColumnWidth(2, 700);
ui->tableWidget->setColumnWidth(3, 200);
ui->tableWidget->setColumnWidth(4, 150);
fillTable();
}
mainUIForm::~mainUIForm()
{
delete ui;
}
void mainUIForm::fillTable()
{
while (ui->tableWidget->rowCount()) {
ui->tableWidget->removeRow(0);
}
int i = 0;
for(auto& _it : PRMS::g_referenceList){
ui->tableWidget->insertRow(i);
ui->tableWidget->setItem(i, 0, new QTableWidgetItem(_it.getDOI()));
ui->tableWidget->setItem(i, 1, new QTableWidgetItem(_it.getAuthor()));
ui->tableWidget->setItem(i, 2, new QTableWidgetItem(_it.getTitle()));
ui->tableWidget->setItem(i, 3, new QTableWidgetItem(_it.getJournal()));
ui->tableWidget->setItem(i, 4, new QTableWidgetItem(_it.getYear()));
ui->tableWidget->setItem(i, 5, new QTableWidgetItem(_it.getType()));
++i;
}
}
void mainUIForm::TableToJson(QString _file)
{
/// table 传入json文件
QFile file(_file);
file.open(QIODevice::ReadWrite);
QByteArray data = file.readAll();
file.resize(0);
QJsonArray _array;
QJsonObject _root;
for(int i = 0; i < ui->tableWidget->rowCount(); ++i){
QJsonObject _leaf;
_leaf.insert("doi", ui->tableWidget->item(i, 0)->text());
_leaf.insert("author", ui->tableWidget->item(i, 1)->text());
_leaf.insert("title", ui->tableWidget->item(i, 2)->text());
_leaf.insert("journal", ui->tableWidget->item(i, 3)->text());
_leaf.insert("year", ui->tableWidget->item(i, 4)->text());
_leaf.insert("type", ui->tableWidget->item(i, 5)->text());
_array.append(_leaf);
}
_root.insert("Reference", _array);
//初始化JsonDocument
QJsonDocument jsonDocument;
jsonDocument.setObject(_root);
//JsonDocument转为ByteArray
QByteArray byteArray = jsonDocument.toJson(QJsonDocument::Indented);
QString _jsonStr(byteArray.data());
file.write(_jsonStr.toUtf8());
file.close();
}
void mainUIForm::on_lineEdit_textChanged(const QString &arg1)
{
while (ui->tableWidget->rowCount()) {
ui->tableWidget->removeRow(0);
}
for(auto & _it : PRMS::g_referenceList){
if(_it.getDOI().contains(arg1) || _it.getAuthor().contains(arg1)
|| _it.getTitle().contains(arg1) || _it.getJournal().contains(arg1)
|| _it.getYear().contains(arg1) || _it.getType().contains(arg1)){
int i = ui->tableWidget->rowCount();
ui->tableWidget->insertRow(i);
ui->tableWidget->setItem(i, 0, new QTableWidgetItem(_it.getDOI()));
ui->tableWidget->setItem(i, 1, new QTableWidgetItem(_it.getAuthor()));
ui->tableWidget->setItem(i, 2, new QTableWidgetItem(_it.getTitle()));
ui->tableWidget->setItem(i, 3, new QTableWidgetItem(_it.getJournal()));
ui->tableWidget->setItem(i, 4, new QTableWidgetItem(_it.getYear()));
ui->tableWidget->setItem(i, 5, new QTableWidgetItem(_it.getType()));
}
}
}
void mainUIForm::on_tableWidget_itemDoubleClicked(QTableWidgetItem *item)
{
if(PRMS::g_currentRole == 0){
return;
}
if(QMessageBox::information(this, "提 示", "请选择删除还是维护该条信息!", "维护信息", "删除") == 0){
return;
}
else{
QString _doi = ui->tableWidget->item(item->row(), 0)->text();
ui->tableWidget->removeRow(item->row());
for(int i = 0; i < PRMS::g_referenceList.size(); ++i){
if(PRMS::g_referenceList.at(i).getDOI().compare(_doi) == 0){
PRMS::g_referenceList.removeAt(i);
}
}
return;
}
}
void mainUIForm::on_action_O_triggered()
{
QString filePath = QFileDialog::getOpenFileName(this, tr("选择导入文件"), tr("..\\json"), QStringLiteral("*.json"));
if(filePath.isEmpty())
{
return;
}
PRMS::readReferenceFromJson(filePath);
fillTable();
}
void mainUIForm::on_action_N_triggered()
{
if(m_refadd == nullptr){
m_refadd = new ReferAdd;
}
m_refadd->clearThis();
m_refadd->setWindowTitle("文献添加");
if(m_refadd->exec() == QDialog::Accepted){
fillTable();
}
}
void mainUIForm::on_action_S_triggered()
{
QString filePath = QFileDialog::getSaveFileName(this, tr("选择保存路径"), tr("..\\json"), QStringLiteral("*.json"));
if(filePath.isEmpty())
{
return;
}
this->TableToJson(filePath);
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于Qt的文献管理系统.zip
共32个文件
ico:10个
cpp:7个
h:6个
需积分: 1 2 下载量 193 浏览量
2024-03-21
23:38:59
上传
评论
收藏 53KB ZIP 举报
温馨提示
基于Qt的文献管理系统.zip基于Qt的文献管理系统.zip基于Qt的文献管理系统.zip 基于Qt的文献管理系统.zip基于Qt的文献管理系统.zip基于Qt的文献管理系统.zip 基于Qt的文献管理系统.zip基于Qt的文献管理系统.zip基于Qt的文献管理系统.zip 基于Qt的文献管理系统.zip基于Qt的文献管理系统.zip基于Qt的文献管理系统.zip 基于Qt的文献管理系统.zip基于Qt的文献管理系统.zip基于Qt的文献管理系统.zip 基于Qt的文献管理系统.zip基于Qt的文献管理系统.zip基于Qt的文献管理系统.zip 基于Qt的文献管理系统.zip基于Qt的文献管理系统.zip基于Qt的文献管理系统.zip 基于Qt的文献管理系统.zip基于Qt的文献管理系统.zip基于Qt的文献管理系统.zip 基于Qt的文献管理系统.zip基于Qt的文献管理系统.zip基于Qt的文献管理系统.zip 基于Qt的文献管理系统.zip基于Qt的文献管理系统.zip基于Qt的文献管理系统.zip 基于Qt的文献管理系统.zip基于Qt的文献管理系统.zip基于Qt的文献管理系
资源推荐
资源详情
资源评论
收起资源包目录
基于Qt的文献管理系统.zip (32个子文件)
code_30312
resource.qrc 392B
res
MainUI
save.ico 17KB
open.ico 17KB
add.ico 17KB
logo
logo.ico 17KB
titleico
people.ico 66KB
LoginUI
close.ico 17KB
label.ico 17KB
login.ico 5KB
pwdback.ico 17KB
add.ico 5KB
literature_manage.pro 1KB
.gitignore 750B
json
test.json 113KB
Reference.json 1KB
admin.json 221B
_APL
mainUI
mainuiform.h 719B
mainuiform.ui 7KB
mainuiform.cpp 5KB
addRef
referadd.cpp 2KB
referadd.ui 3KB
referadd.h 390B
LoginUI
loginui.cpp 1KB
loginui.ui 10KB
loginui.h 378B
_BK
UserModule
user.cpp 33B
user.h 469B
main.cpp 543B
Reference
Reference.cpp 37B
Reference.h 860B
Global
exeGlobal.h 596B
exeGlobal.cpp 3KB
共 32 条
- 1
资源评论
龙年行大运
- 粉丝: 1006
- 资源: 3852
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 海信智能电视刷机数据 LED42K330X3D(0000) 生产用软件数据 务必确认机编一致 强制刷机 整机USB升级程序
- shujudaochuceshi
- learn-ruby.zip
- test111111111111111111
- face-detect.ipynb
- 以下是一些关于ACM(国际大学生程序设计竞赛)、NOI(全国青少年信息学奥林匹克竞赛)以及CSP(全国青少年信息学奥林匹克竞赛提
- 是一些电子设计竞赛(电赛)经验分享,包括备赛策略、项目管理、团队合作和比赛期间的注意事项
- 全能运行库修复工具DirectX Repair v4.1.0.30770
- las格式点云数据使用详解(附VS编译好的LAStools工具)
- KRPano插件一键解密大师1.4.0 (解压密码1234)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功