QT简易版学生信息管理系统(mysql数据库--增删改查功能)
代码如下登录界面功能实现:from1.cpp#include "form1.h"#include "ui_form1.h"#include "widget.h"#include "ui_widget.h"#include "newuser.h"#include "ui_newuser.h"#include <QMessageBox>#include <QtSql/QSqlData
·
代码如下
登录界面功能实现:
from1.cpp
#include "form1.h"
#include "ui_form1.h"
#include "widget.h"
#include "ui_widget.h"
#include "newuser.h"
#include "ui_newuser.h"
#include <QMessageBox>
#include <QtSql/QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>
#include <QStandardItem>
#include <QPalette>
#include <QDebug>
Form1::Form1(QWidget *parent) :
QWidget(parent),
ui(new Ui::Form1)
{
ui->setupUi(this);
this->setWindowFlags(Qt::FramelessWindowHint);//隐藏标题栏
this->setAutoFillBackground(true);
QPalette palette;
QPixmap pixmap(":/new/cool.jpg");
palette.setBrush(QPalette::Window, QBrush(pixmap));
this->setPalette(palette);
mysql_connet();
Widget *man=new Widget;
newuser *user=new newuser;
connect(ui->pushButton,&QPushButton::clicked,this,[=](){
QSqlQuery quey;
if((ui->lineEdit->text()=="") && (ui->lineEdit_2->text()==""))
{
QMessageBox *waring=new QMessageBox(QMessageBox::Warning,"警告","用户名或密码不能为空",QMessageBox::Ok);
waring->exec();
}
else
{
quey.exec("select * from userdata");
while(quey.next())
{
if((ui->lineEdit->text()==quey.value(1).toString()) && (ui->lineEdit_2->text()==quey.value(2)))
{
QMessageBox *box=new QMessageBox(QMessageBox::Information,"登录成功",quey.value(1).toString(),QMessageBox::Ok);
box->show();
this->hide();
man->show();
}
}
QMessageBox *cri=new QMessageBox(QMessageBox::Critical,"错误","用户名或密码错误,请重新输入",QMessageBox::Ok);
cri->show();
}
});
connect(ui->pushButton_2,&QPushButton::clicked,this,[=](){
this->hide();
user->show();
});
connect(ui->pushButton_3,&QPushButton::clicked,this,[=](){
int ret;
QMessageBox *tui=new QMessageBox(QMessageBox::Question,"提示","确定退出该程序吗?",QMessageBox::Ok|QMessageBox::Close);
ret=tui->exec();
if(ret==QMessageBox::Ok)
{
this->close();
}
});
/*************信号机制**************/
connect(user,&newuser::signal_user,this,[=](){
this->show();
user->hide();
});
connect(man,&Widget::signal_main,this,[=](){
this->show();
man->hide();
});
}
Form1::~Form1()
{
delete ui;
}
void Form1::mysql_connet()
{
QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");
db.setHostName("47.98.61.60");
db.setPort(3306);
db.setUserName("root");
db.setPassword("123456");
db.setDatabaseName("test");
if(!db.open()){
QMessageBox::warning(this,"错误",db.lastError().text());
}
else
{
qDebug()<<"连接成功1";
}
}
用户注册界面功能实现:
newuser.cpp
#include "newuser.h"
#include "ui_newuser.h"
#include <QMessageBox>
#include <QtSql/QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>
#include <QStandardItem>
#include <QPalette>
#include <QDebug>
newuser::newuser(QWidget *parent) :
QWidget(parent),
ui(new Ui::newuser)
{
ui->setupUi(this);
this->setWindowFlags(Qt::FramelessWindowHint);
this->setAutoFillBackground(true);
QPalette palette;
QPixmap pixmap(":/new/GIF.jpg");
palette.setBrush(QPalette::Window, QBrush(pixmap));
this->setPalette(palette);
MySQL_Connect();
connect(ui->pushButton,&QPushButton::clicked,this,[=](){
if((ui->lineEdit->text()=="") || (ui->lineEdit_2->text()=="") || (ui->lineEdit_3->text()==""))
{
QMessageBox *cri=new QMessageBox(QMessageBox::Critical,"错误","填写的信息不完整,请重新填写",QMessageBox::Ok);
cri->exec();
}
else
{
if(ui->lineEdit_2->text()!=ui->lineEdit_3->text())
{
QMessageBox *waring=new QMessageBox(QMessageBox::Warning,"警告","填写的密码不一致,请检查输入是否正确",QMessageBox::Ok);
waring->exec();
}
else
{
QSqlQuery quey;
QString data1 = ui->lineEdit->text(), data2 = ui->lineEdit_2->text();
quey.prepare("insert into userdata(username,password) values(?,?)");
quey.addBindValue(data1);
quey.addBindValue(data2);
quey.exec(); //执行
int ret;
QMessageBox *sucess=new QMessageBox(QMessageBox::Question,"提示","用户已注册成功,是否返回登陆界面?",QMessageBox::Ok | QMessageBox::Close);
ret=sucess->exec();
if(ret==QMessageBox::Ok)
{
emit signal_user();
}
}
}
});
connect(ui->pushButton_2,&QPushButton::clicked,this,[=](){
ui->lineEdit->setText("");
ui->lineEdit_2->setText("");
ui->lineEdit_3->setText("");
});
connect(ui->pushButton_3,&QPushButton::clicked,this,[=](){
int ret;
QMessageBox *tui=new QMessageBox(QMessageBox::Question,"提示","确定退出注册界面吗?",QMessageBox::Ok|QMessageBox::Close);
ret=tui->exec();
if(ret==QMessageBox::Ok)
{
emit signal_user();
}
});
}
newuser::~newuser()
{
delete ui;
}
void newuser::MySQL_Connect()
{
QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");
db.setHostName("47.98.61.60");
db.setPort(3306);
db.setUserName("root");
db.setPassword("123456");
db.setDatabaseName("test");
if(!db.open()){
QMessageBox::warning(this,"错误",db.lastError().text());
}
else
{
qDebug()<<"连接成功3";
}
}
主界面功能实现:
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QMessageBox>
#include <QTimer>
#include <QDebug>
#include <QMovie>
#include <QDateTime>
#include <QDebug>
#include <QtSql/QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>
#include <QStandardItem>
#include <QPalette>
string data1;
char data2[20];
float score=0;
int i=0;
int row=0;
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
this->setWindowFlags(Qt::FramelessWindowHint);//隐藏标题栏
this->setAutoFillBackground(true);
QPalette palette;
QPixmap pixmap(":/new/ku.jpg");
palette.setBrush(QPalette::Window, QBrush(pixmap));
this->setPalette(palette);
MySQL_Connect();
QStringList headertext;
headertext<<"姓名"<<"班级"<<"成绩";
ui->tableWidget->setColumnCount(headertext.count());
for(int i=0;i<headertext.count();i++)
{
ui->tableWidget->setHorizontalHeaderItem(i,new QTableWidgetItem(headertext.at(i)));
}
QSqlQuery quey;
quey.exec("select * from data");
qint32 rowno=0;
while(quey.next())
{
qDebug()<<quey.value(0).toString()<<quey.value(1).toString()<<quey.value(2).toString()<<quey.value(3).toString();
ui->tableWidget->insertRow(rowno);
for(int i=0;i<4;i++)
{
ui->tableWidget->setItem(rowno,i,new QTableWidgetItem(quey.value(i+1).toString()));
}
rowno++;
}
connect(ui->pushButton,&QPushButton::clicked,this,[=](){
if(ui->lineEdit->text()=="" && ui->lineEdit_2->text()=="" && ui->lineEdit_3->text()=="")
{
QMessageBox *inser_no=new QMessageBox(QMessageBox::Warning,"警告","请将信息填写完整",QMessageBox::Ok);
inser_no->exec();
}
else
{
QSqlQuery quey;
QString data1 = ui->lineEdit->text(), data2 = ui->lineEdit_3->text() ,data3=ui->lineEdit_2->text();
quey.prepare("insert into data(name,class,score) values(?,?,?)");
quey.addBindValue(data1);
quey.addBindValue(data2);
quey.addBindValue(data3);
quey.exec(); //执行
updata();
ui->lineEdit->setText("");
ui->lineEdit_2->setText("");
ui->lineEdit_3->setText("");
}
});
connect(ui->pushButton_2,&QPushButton::clicked,this,[=](){
QSqlQuery quey;
QString delaname=ui->lineEdit->text();
quey.prepare(QString("DELETE FROM data WHERE name=?"));
quey.addBindValue(delaname);
quey.exec();
updata();
ui->lineEdit->setText("");
ui->lineEdit_2->setText("");
ui->lineEdit_3->setText("");
});
connect(ui->pushButton_3,&QPushButton::clicked,this,[=](){
QSqlQuery quey;
int flag=0;
quey.exec("select * from data");
while(quey.next())
{
if(ui->lineEdit->text()==quey.value(1).toString())
{
QMessageBox *box=new QMessageBox(QMessageBox::Information,"查询成功",quey.value(1).toString(),QMessageBox::Ok | QMessageBox::Close);
box->exec();
flag=1;
}
}
if(flag==0)
{
QMessageBox *box_no=new QMessageBox(QMessageBox::Information,"查询结果","未查询到相关信息",QMessageBox::Ok | QMessageBox::Close);
box_no->exec();
}
});
connect(ui->pushButton_4,&QPushButton::clicked,this,[=](){
QSqlQuery quey;
QString valueStr=ui->lineEdit_2->text();
QString flag = ui->lineEdit->text();
quey.prepare("update data set score = ? where name = ?");
quey.addBindValue(valueStr);
quey.addBindValue(flag);
quey.exec(); //执行
updata();
ui->lineEdit->setText("");
ui->lineEdit_2->setText("");
ui->lineEdit_3->setText("");
});
connect(ui->pushButton_5,&QPushButton::clicked,this,[=](){
int ret;
QMessageBox *fan=new QMessageBox(QMessageBox::Question,"提示","确定退出该界面吗?",QMessageBox::Ok|QMessageBox::Close);
ret=fan->exec();
if(ret==QMessageBox::Ok)
{
emit signal_main();
}
});
connect(ui->pushButton_6,&QPushButton::clicked,this,[=](){
int ret;
QMessageBox *tui=new QMessageBox(QMessageBox::Question,"提示","确定退出该程序吗?",QMessageBox::Ok|QMessageBox::Close);
ret=tui->exec();
if(ret==QMessageBox::Ok)
{
this->close();
}
});
QTimer *time=new QTimer(this);
time->start(1000);
connect(time,&QTimer::timeout,this,[=](){
QDateTime curent_time=QDateTime::currentDateTime();
QString time_data=curent_time.toString("yyyy-MM-dd hh:mm:ss ddd");
ui->label_4->setText(time_data);
});
QMovie *mo=new QMovie(":/new/miao.gif");
ui->label_6->setMovie(mo);
mo->start();
}
Widget::~Widget()
{
delete ui;
}
void Widget::MySQL_Connect()
{
QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");
db.setHostName("47.98.61.60");
db.setPort(3306);
db.setUserName("root");
db.setPassword("123456");
db.setDatabaseName("test");
if(!db.open()){
QMessageBox::warning(this,"错误",db.lastError().text());
}
else
{
qDebug()<<"连接成功2";
}
}
void Widget::updata()
{
ui->tableWidget->clearContents();
QSqlQuery quey;
quey.exec("select * from data");
qint32 rowno=0;
while(quey.next())
{
qDebug()<<quey.value(0).toString()<<quey.value(1).toString()<<quey.value(2).toString()<<quey.value(3).toString();
ui->tableWidget->insertRow(rowno);
for(int i=0;i<4;i++)
{
ui->tableWidget->setItem(rowno,i,new QTableWidgetItem(quey.value(i+1).toString()));
}
rowno++;
}
}
运行效果如下:


更多推荐


所有评论(0)