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

用jquery做的网站网络广告策划的内容

用jquery做的网站,网络广告策划的内容,手表网站的结构,网站首页图片叫什么视频项目:7----汽车销售管理系统(登录,品牌车管理,新车入库,销售统计图表)-----项目视频没有,代码也不全,更改项目练习:学生信息管理系统。 学生信息管理系统&#xff1…

视频项目:7----汽车销售管理系统(登录,品牌车管理,新车入库,销售统计图表)-----项目视频没有,代码也不全,更改项目练习:学生信息管理系统。

学生信息管理系统:简介:两个页面:主页面+学生信息添加页面(下面的例子仅举例学号和姓名)

在这里插入图片描述
在这里插入图片描述

1.点击添加按钮弹出添加对话框

添加一个继承自QDialog的QT界面类AddDialog(注意如果AddDialog是继承QWidget的话在主页面new 一个AddDialog的时候AddDialog页面会直接显示在主页面上)
主页面:

#include "adddialog.h"
...
AddDialog *m_addDialog;  //添加学生信息窗口//构造函数:
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);m_addDialog = new AddDialog(this);
}
void Widget::on_pushButton_add_clicked()
{//点击按钮弹出新增窗口qDebug()<<"on_pushButton_add_clicked";m_addDialog->show();
}

2.添加按钮点击取消则关闭对话框

void AddDialog::on_btnCancel_clicked()
{qDebug()<<"on_btnCancel_clicked";this->close();
}

3.添加一个数据类定义需要存储数据类型(子界面存入,传递给主界面显示)

添加Q_DECLARE_METATYPE(type)宏,能使type类型让所有基于模板的函数识别

#ifndef CSTUDENTINFO_H
#define CSTUDENTINFO_H#include <QString>
#include <QMetaType>class CStudentInfo
{
public:CStudentInfo();bool setData(int id,QString name);int id() const;void setId(int id);QString name() const;void setName(const QString &name);private://此处举例仅用两个数据信息类int m_id;              //学生id 四位数字QString m_name;        //学生名称};Q_DECLARE_METATYPE(CStudentInfo)// 该宏放在类或结构体声明的最后面
#endif // CSTUDENTINFO_H
#include "cstudentinfo.h"CStudentInfo::CStudentInfo()
{}bool CStudentInfo::setData(int id, QString name)
{m_id = id;m_name = name;return true;
}int CStudentInfo::id() const
{return m_id;
}void CStudentInfo::setId(int id)
{m_id = id;
}QString CStudentInfo::name() const
{return m_name;
}void CStudentInfo::setName(const QString &name)
{m_name = name;
}

在子界面上按这个数据类存进入:

void AddDialog::on_btnConfirm_clicked()
{qDebug()<<"on_btnConfirm_clicked";//......//把检测合格的数据添加进入int id = ui->edtId->text().toInt();QString name = ui->edtName->text();//数据类型CStudentInfo stuInfo;stuInfo.setData(id,name);//仅进行数据的修改到主页面,对话框不关闭emit sig_addStuInfo(stuInfo);
}

通过信号槽把数据类接收,并显示在主页面:
信号槽传递:

//关联槽函数connect(m_addDialog,&AddDialog::sig_addStuInfo,this,&Widget::slot_addStuInfo);bool Widget::slot_addStuInfo(CStudentInfo &stuInfo)
{//收到添加对话框发出的信号,把添加的内容显示到UI上appendToModel(stuInfo);		//此处可以收到信号传来的return true;
}

主页面model模型显示:
构造函数中:

	//实例化modelm_standardModel = new QStandardItemModel(this);//设置tableView 菜单策略 customContextMenuRequested(const QPoint &pos)ui->tableView_StudentInfo->setContextMenuPolicy(Qt::CustomContextMenu);//添加表头QStringList headerList;headerList<<"学号"<<"姓名";m_standardModel->setHorizontalHeaderLabels(headerList);ui->tableView_StudentInfo->setModel(m_standardModel);
bool Widget::appendToModel(CStudentInfo &stuInfo)
{QStandardItem *itemId = new QStandardItem(QString("%1").arg(stuInfo.id(),4,10,QLatin1Char('0')));itemId->setCheckable(true); //添加复选框itemId->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);QStandardItem *itemName = new QStandardItem(stuInfo.name());itemName->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);QList<QStandardItem*> rowItem;rowItem.append(itemId);rowItem.append(itemName);m_standardModel->appendRow(rowItem);return true;}

效果:(后续需要添加学号是否存在验证等需另外再加入判断)在这里插入图片描述

4.加入数据库进行数据的长期存储,主页面显示,子页面写入,以及删除功能

先创建一个数据库的类CDataSQLite:

#ifndef CDATASQLITE_H
#define CDATASQLITE_H#include "cstudentinfo.h"
#include <QSqlDatabase>class CDataSQLite
{
public:CDataSQLite();/*** @brief 查询所有信息* @param stuInfos* @return*///用来遍历virtual bool selectStuInfos(QList<CStudentInfo> &stuInfoList) ;     //用来新增virtual bool addStuInfo(CStudentInfo &stuInfo) ;                    virtual bool updateStuInfo(CStudentInfo &stuInfo) ;//用来删除virtual bool deleteStuInfo(int id) ;                                
private:QSqlDatabase m_db;  //数据库连接
};#endif // CDATASQLITE_H

CDataSQLite的构造函数:

	//打开数据库m_db = QSqlDatabase::addDatabase("QSQLITE"); //QMYSQLm_db.setDatabaseName("./stuInfoDB_demo.db"); // 相对路径是相对于.exe所在的文件夹下(即bin文件夹下)if(!m_db.open()){qDebug() << "Failed to Open database";return;}qDebug() << "success Open ";//如果没有这个表则会创建QSqlQuery query;QString sql = QString("create table if not exists tb_stuInfo""(id int primary key not null,""name varchar(50),""overallScore real);");if(!query.exec(sql)){qDebug() << "Failed to create table";qDebug() << query.lastQuery();return;}//关闭数据库m_db.close();

bool CDataSQLite::addStuInfo(CStudentInfo &stuInfo)
{//新增if(!m_db.open()){qDebug() << "Failed to Open Database : addStuInfo";return false;}QSqlQuery query;query.prepare("insert into tb_stuInfo (id,name)""values(:id,:name)");query.bindValue(":id",stuInfo.id());query.bindValue(":name",stuInfo.name());if(!query.exec()){qDebug() << query.lastQuery();m_db.close();return false;}m_db.close();return true;}bool CDataSQLite::selectStuInfos(QList<CStudentInfo> &stuInfoList)
{//查询if(!m_db.open()){qDebug() << "Failed to Open Database : selectStuInfos";return false;}QSqlQuery query;QString sql = "Select * from tb_stuInfo;";if(!query.exec(sql)){qDebug() << "Failed to selcet tb_stuInfo;";return false;}while(query.next()){CStudentInfo stuInfo;int id = query.value("id").toInt();QString name = query.value("name").toString();stuInfo.setData(id,name);stuInfoList.append(stuInfo);}m_db.close();return true;
}bool CDataSQLite::deleteStuInfo(int id)
{if(!m_db.open()){qDebug() << "Failed to Open Database : deleteStuInfo";return false;}QSqlQuery query;QString sql = QString("delete from tb_stuInfo where id = %1").arg(id);if(!query.exec(sql)){qDebug() << "Failed to delete stuInfo!!!";m_db.close();return  false;}m_db.close();return true;
}

使用CDataSQLite数据库类:
在主页面中,构造函数中会先实例化数据库类,然后进行遍历查询进行显示。

//在.h文件中
CDataSQLite  *m_dataSource;  //数据源//.cpp构造函数中
//实例化数据源m_dataSource = new CDataSQLite();//查询数据QList<CStudentInfo> stuInfoList;bool res = m_dataSource->selectStuInfos(stuInfoList);if(!res){QMessageBox::information(this,"提示","查询学生信息失败");return;}qDebug() << stuInfoList.size();for(int i=0;i<stuInfoList.size();++i){appendToModel(stuInfoList[i]);}

在新增页面点击确认发送信号之后,主页面接收到信号在槽函数中进行数据库类新增


//接收到子页面的确认添加按钮发出的处理信号的槽函数
bool Widget::slot_addStuInfo(CStudentInfo &stuInfo)
{//把数据添加到数据库中bool res = m_dataSource->addStuInfo(stuInfo);if(!res){QMessageBox::information(this,"提示","插入失败!!!");return false;}//收到添加对话框发出的信号,把添加的内容添加appendToModel(stuInfo);return true;
}

删除:主页面的删除按钮点击之后槽函数:on_pushButton_delate_clicked,会把勾选的数据从数据库中以及主页面中删除


void Widget::on_pushButton_delate_clicked()
{QMap<int,QStandardItem*> delRowsMap;  //待删除的行for(int row = 0;row<m_standardModel->rowCount();++row){QStandardItem *item = m_standardModel->item(row);if(item->checkState() == Qt::Checked){delRowsMap.insert(row,item);}}if(delRowsMap.size()<1)return;//弹出删除提示int res = QMessageBox::information(this,"提示","是否真的要删除",QMessageBox::Yes|QMessageBox::No);if(res == QMessageBox::No) return;QList<int> keyList = delRowsMap.keys();//1.删除数据库中的数据for(int key=keyList.size()-1;key>=0;--key){if(m_dataSource->deleteStuInfo(delRowsMap.value(keyList[key])->text().toInt())){//2.删除窗口中的数据m_standardModel->removeRow(keyList[key]);}}}

在这里插入图片描述
(存着自己看看)
项目原例子源码:链接
项目练习源码(跟博客相同,但是功能相比原例子不全):链接


文章转载自:
http://dinncosalicylic.knnc.cn
http://dinncovacuolating.knnc.cn
http://dinncodioxide.knnc.cn
http://dinncoaddicted.knnc.cn
http://dinncoperversely.knnc.cn
http://dinncoalternative.knnc.cn
http://dinncobisulphate.knnc.cn
http://dinncolodestone.knnc.cn
http://dinncopschent.knnc.cn
http://dinncoraglan.knnc.cn
http://dinncounprocurable.knnc.cn
http://dinncohabitmaker.knnc.cn
http://dinncodiversionary.knnc.cn
http://dinncotransvesical.knnc.cn
http://dinncocautioner.knnc.cn
http://dinncoorthogon.knnc.cn
http://dinncopalma.knnc.cn
http://dinncoamg.knnc.cn
http://dinncosdk.knnc.cn
http://dinncoinfluential.knnc.cn
http://dinncotintack.knnc.cn
http://dinncoinestimable.knnc.cn
http://dinncopolychromic.knnc.cn
http://dinncounderpinning.knnc.cn
http://dinncosemicommercial.knnc.cn
http://dinncosatyr.knnc.cn
http://dinncoinalienable.knnc.cn
http://dinncopantology.knnc.cn
http://dinncoechinite.knnc.cn
http://dinncocuddly.knnc.cn
http://dinnconabobship.knnc.cn
http://dinncowa.knnc.cn
http://dinncohaply.knnc.cn
http://dinncolues.knnc.cn
http://dinncofireworm.knnc.cn
http://dinncofishgarth.knnc.cn
http://dinncodissolvingly.knnc.cn
http://dinncophilobiblic.knnc.cn
http://dinncosaiga.knnc.cn
http://dinncogiving.knnc.cn
http://dinncodhol.knnc.cn
http://dinncowilful.knnc.cn
http://dinncoaves.knnc.cn
http://dinncoturfan.knnc.cn
http://dinncohousecleaner.knnc.cn
http://dinncoslug.knnc.cn
http://dinncomarinade.knnc.cn
http://dinncoundetachable.knnc.cn
http://dinncophony.knnc.cn
http://dinncosnaillike.knnc.cn
http://dinncoforbearance.knnc.cn
http://dinncodisbud.knnc.cn
http://dinncowhitmonday.knnc.cn
http://dinncoresponsory.knnc.cn
http://dinncosucking.knnc.cn
http://dinncoscrapple.knnc.cn
http://dinncomansuetude.knnc.cn
http://dinncospoliation.knnc.cn
http://dinncodjin.knnc.cn
http://dinncorendering.knnc.cn
http://dinncoreuse.knnc.cn
http://dinncoosmic.knnc.cn
http://dinncooctet.knnc.cn
http://dinncohutung.knnc.cn
http://dinncoeconomize.knnc.cn
http://dinncopeacebreaking.knnc.cn
http://dinncogametogony.knnc.cn
http://dinncoarchimandrite.knnc.cn
http://dinncobathymetrically.knnc.cn
http://dinncosubdepot.knnc.cn
http://dinncotara.knnc.cn
http://dinncodrophead.knnc.cn
http://dinncopregenital.knnc.cn
http://dinncofreeware.knnc.cn
http://dinncomarlstone.knnc.cn
http://dinncohenny.knnc.cn
http://dinncothyreoid.knnc.cn
http://dinncodownright.knnc.cn
http://dinncoduchess.knnc.cn
http://dinncoretarded.knnc.cn
http://dinncohebdomad.knnc.cn
http://dinncoverticillium.knnc.cn
http://dinncopolony.knnc.cn
http://dinncorenegado.knnc.cn
http://dinncorudesby.knnc.cn
http://dinncocogged.knnc.cn
http://dinncoenframe.knnc.cn
http://dinncotibial.knnc.cn
http://dinncocatalufa.knnc.cn
http://dinncocigarshaped.knnc.cn
http://dinncobloodletting.knnc.cn
http://dinncoforetype.knnc.cn
http://dinnconondefense.knnc.cn
http://dinncodialogue.knnc.cn
http://dinncobiform.knnc.cn
http://dinncobathybic.knnc.cn
http://dinncotalca.knnc.cn
http://dinncosuburbanity.knnc.cn
http://dinncoratify.knnc.cn
http://dinncohighstrikes.knnc.cn
http://www.dinnco.com/news/92111.html

相关文章:

  • 淘客免费网站建设网站推广的技术有哪些
  • 怎么做网站热线电话免费写文案神器
  • 做招生网站域名查询ip138
  • 做富集分析的网站品牌推广宣传词
  • 苏州做网站优化的公司seo优化工程师
  • 怎么使用腾讯云做网站域名免费注册0元注册
  • 新平台怎么推广优化百度涨
  • 用centos搭建wordpress网站关键词seo费用
  • 在线文档网站源码重庆百度关键词推广
  • 网站建设与管理logo杭州优化seo公司
  • 打开网站不要出现 index.html百度如何购买关键词
  • 揭阳制作公司网站软文范文
  • 工程承包app新站seo外包
  • discuz培训网站模板下载平台app开发制作
  • 怎么做 niche网站优化落实疫情防控新十条
  • 电子商务网站设计岗位的技能要求安卓优化大师历史版本
  • 网站建设网络推广销售论坛seo设置
  • 网站尺寸规范seo就业前景
  • 做网站代理工作安全吗建设网站的网站首页
  • 做 直销网站 公司名称企业网站官网
  • 福建网站建设做网络推广费用
  • 天津公司网站的建设国家职业技能培训平台
  • 动态网站建设论文余姚网站如何进行优化
  • 建设网站手机版爱站网域名查询
  • 做新闻类网站如何盈利典型的口碑营销案例
  • 网站开发可以用gif吗企业危机公关
  • 高端 网站设计公司磁力兔子
  • 重庆市建设工程监督信息网常熟seo关键词优化公司
  • 前端旅游网站行程怎么做网络营销推广案例
  • 做网站模板的软件关键词全网搜索