一、设计界面
1、主界面
2、添加学生界面
3、查询界面
二、addstudent.h文件
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
三、chaxun.h文件
#ifndef CHAXUN_H
#define CHAXUN_H
#include <QFile>
#include <QTextStream>
#include <QIODevice>
#include <QDialog>
#include <QList>
#include <QString>
#include <QStandardItem>
#include <QStandardItemModel>
namespace Ui {
class chaxun;
}
class chaxun : public QDialog
{
Q_OBJECT
public:
explicit chaxun(QWidget *parent = 0);
~chaxun();
int readFromFile();
void doQuert(int index,QString cnt);
void disPlay(int row,QStringList subs);
void cahxunInit(void);
private slots:
void on_byn_search_clicked();
private:
Ui::chaxun *ui;
QList<QString> stu_lines;
QStandardItemModel *model;
};
#endif // CHAXUN_H
四、mainwindow.h文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include "addstudent.h"
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void actionaddStu();
void actionChaxun();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
五、addstudent.c文件
#include "addstudent.h"
#include "ui_addstudent.h"
#include <QString>
#include <QDebug>
#include <QMessageBox>
#include <QPushButton>
#include <QCheckBox>
#include <QFile>
#include <QTextStream>
#include <QIODevice>
#include <QList>
#include <QAbstractButton>
#include <QCheckBox>
addstudent::addstudent(QWidget *parent) :
QDialog(parent),
ui(new Ui::addstudent)
{
ui->setupUi(this);
connect(this->ui->btn_cancel,SIGNAL(clicked(bool)),this,SLOT(close()));
}
addstudent::~addstudent()
{
delete ui;
}
void addstudent::on_btn_ok_clicked()
{
QString name = this->ui->le_name->text();
QString id = this->ui->le_id->text();
QString age = this->ui->cbb_age->currentText();
QString dev = this->ui->cbb_yx->currentText();
QButtonGroup getModeSelect;
getModeSelect.addButton(ui->rbtm_male,1);//将radioMode加进组
getModeSelect.addButton(ui->rbtn_famale,2);
QString content;
QString cnt;
QList<QAbstractButton *> ins_list = this->ui->insGroup_2->buttons();
QString ins;
int i =0 ;
for(i =0;i<ins_list.length();i++)
{
QAbstractButton *che = ins_list.at(i);
if(che->isChecked())
{
ins += che->text() + ",";
}
}
if(getModeSelect.checkedId() == 1)
{
content = name + '\n' + id+ '\n'+ "male"+'\n'+ age + '\n' + dev +'\n' + ins;
cnt = name + ' ' + id+ ' '+ "male"+' '+ age + ' ' + dev +' ' + ins+ '\n';
}
else
{
content = name + '\n' + id+ '\n'+ "female"+'\n'+ age + '\n' + dev +'\n' + ins;
cnt = name + ' ' + id+ ' ' + "female"+' ' + age + ' ' + dev +' ' + ins+ '\n';
}
writeToFile(cnt);
if(name.length()<1||id.length()<1)
{
QMessageBox::critical(this,"error ","Information error ","ok","cancel");
}
else
{
int ret = QMessageBox::critical(this,"Please confirm information.",content,"ok","cancel");
if(ret == 0)
{
clearUserInterface();
}
}
}
void addstudent::clearUserInterface()
{
this->ui->le_name->clear();
this->ui->le_id->clear();
this->ui->rbtm_male->setChecked(true);
this->ui->cbb_age->setCurrentIndex(0);
this->ui->cbb_yx->setCurrentIndex(0);
this->ui->rbtm_male->setChecked(true);
this->ui->le_name->setFocus();
}
void addstudent::writeToFile(QString cnt)
{
QFile file("stu.txt");
if(!file.open(QIODevice::Append|QIODevice::Text))
{
QMessageBox::critical(this,"error","Failed to open file","ok","cancel");
return;
}
QTextStream out(&file);
out << cnt;
file.close();
}
void addstudent::on_le_name_cursorPositionChanged(int arg1, int arg2)
{
}
void addstudent::on_le_name_editingFinished()
{
}
void addstudent::on_le_name_returnPressed()
{
}
void addstudent::on_le_name_textChanged(const QString &arg1)
{
}
void addstudent::on_le_name_objectNameChanged(const QString &objectName)
{
}
六、chaxun.cpp文件
#include "chaxun.h"
#include "ui_chaxun.h"
#include <QFile>
#include <QTextStream>
#include <QIODevice>
#include <QMessageBox>
#include <QDebug>
#include <QStringList>
#include <QStandardItem>
#include <QStandardItemModel>
chaxun::chaxun(QWidget *parent) :
QDialog(parent),
ui(new Ui::chaxun)
{
ui->setupUi(this);
if(readFromFile() == -1)
{
QMessageBox::critical(this,"cuowu ","file open fail","ok","cancel");
this->close();
}
this->model = new QStandardItemModel;
this->ui->tableView->setModel(model);
cahxunInit();
}
chaxun::~chaxun()
{
delete ui;
}
int chaxun::readFromFile()
{
QFile file("stu.txt");
if(!file.open(QIODevice::ReadOnly|QIODevice::Text))
{
return -1;
}
QTextStream in(&file);
while(!in.atEnd())
{
QString line = in.readLine() ;
stu_lines.append(line);
}
file.close();
//int i;
//for(i = 0;i<stu_lines.length();i++)
//{
// qDebug()<<stu_lines.at(i);
//}
}
void chaxun::on_byn_search_clicked()
{
this->model->clear();
cahxunInit();
int index = this->ui->cbb_method->currentIndex();
QString cnt = this->ui->le_cnt->text();
doQuert(index,cnt);
}
void chaxun::doQuert(int index,QString cnt)
{
int i =0;
int row = 0;
for(i =0;i<stu_lines.length();i++)
{
QString line = stu_lines.at(i);
line = line.trimmed();
QStringList subs = line.split(" ");
switch(index){
case 1:
if(cnt == subs.at(0))
{
disPlay(row++,subs);
}
break;
case 2:
if(cnt == subs.at(1))
{
disPlay(row++,subs);
}
break;
case 3:
if(cnt == subs.at(2))
{
disPlay(row++,subs);
}
break;
default:
break;
}
}
}
void chaxun::disPlay(int row,QStringList subs)
{
int i=0;
for(i =0;i<subs.length();i++)
{
this->model->setItem(row,i,new QStandardItem(subs.at(i)));
}
}
void chaxun::cahxunInit(void)
{
this->model->setHorizontalHeaderItem(0,new QStandardItem("name"));
this->model->setHorizontalHeaderItem(1,new QStandardItem("number"));
this->model->setHorizontalHeaderItem(2,new QStandardItem("sex"));
this->model->setHorizontalHeaderItem(3,new QStandardItem("age"));
this->model->setHorizontalHeaderItem(4,new QStandardItem("depart"));
this->model->setHorizontalHeaderItem(5,new QStandardItem("interest"));
this->ui->tableView->setColumnWidth(0,100);
this->ui->tableView->setColumnWidth(1,150);
this->ui->tableView->setColumnWidth(2,100);
this->ui->tableView->setColumnWidth(3,50);
this->ui->tableView->setColumnWidth(4,100);
this->ui->tableView->setColumnWidth(5,300);
}
七、mian.cpp文件
#include "addstudent.h"
#include <QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//addstudent w;
//w.show();
MainWindow m;
m.show();
return a.exec();
}
八、mainwindow.cpp文件
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include "addstudent.h"
#include "chaxun.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(this->ui->actionTianjiaxus,SIGNAL(triggered(bool)),this,SLOT(actionaddStu()));
connect(this->ui->actionChaxun,SIGNAL(triggered(bool)),this,SLOT(actionChaxun()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::actionaddStu()
{
addstudent a;
// a.show();
a.exec();
}
void MainWindow::actionChaxun()
{
chaxun b;
b.exec();
}