#include "admindialog.h"
#include "ui_admindialog.h"
#include <QSqlQuery>
#include <QDebug>
AdminDialog::AdminDialog(QWidget *parent) :
QWidget(parent),
m_ui(new Ui::AdminDialog)
{
m_ui->setupUi(this);
this->InitForm();
managegrade = new AdminGradeDialog;
modifyPwd = new AdminSystemDialog;
m_ui->stackedWidget->addWidget(managegrade);
m_ui->stackedWidget->addWidget(modifyPwd);
}
AdminDialog::~AdminDialog()
{
delete m_ui;
}
void AdminDialog::InitForm()
{
//将学号,班级,系名 添加到下拉框中(调用自己写的函数)
this->BindData("sno","t_student",m_ui->comboBoxId);
this->BindData("classno","t_student",m_ui->comboBoxClass);
this->BindData("deptno","t_student",m_ui->comboBoxDepart);
QueryModel = new QSqlQueryModel(this);
//初始化表格列名和列宽
ColumnName[0] = "学号";
ColumnName[1] = "姓名";
ColumnName[2] = "密码";
ColumnName[3] = "身份证号";
ColumnName[4] = "班级号";
ColumnName[5] = "专业号";
ColumnName[6] = "专业";
ColumnName[7] = "联系地址";
ColumnName[8] = "enterdate";
ColumnName[9] = "入学时间";
ColumnName[10] = "生日";
ColumnName[11] = "出生地";
ColumnName[12] = "生日";
ColumnName[13] = "出生地";
ColumnName[14] = "籍贯";
ColumnWidths[0] = 100;
ColumnWidths[1] = 80;
ColumnWidths[2] = 100;
ColumnWidths[3] = 70;
ColumnWidths[4] = 60;
ColumnWidths[5] = 100;
ColumnWidths[6] = 50;
ColumnWidths[7] = 100;
ColumnWidths[8] = 80;
ColumnWidths[9] = 80;
ColumnWidths[10] = 50;
ColumnWidths[11] = 80;
ColumnWidths[12] = 80;
ColumnWidths[13] = 100;
ColumnWidths[14] = 90;
this->BindtableInfo("t_student",m_ui->tableView,ColumnName,ColumnWidths);
}
void AdminDialog::BindData(QString columnName, QString tableName, QComboBox *cbox)
{
QSqlQuery query;
query.exec("select "+columnName+" from "+tableName+" order by "+columnName+" asc");
while(query.next())
{
cbox->addItem(query.value(0).toString());
}
}
void AdminDialog::BindtableInfo(QString tableName, QTableView *tableView, QString columnNames[], int columnWidths[])
{
TableView = tableView;
QString sql = "SELECT *FROM " + tableName+";";
QueryModel->setQuery(sql);
TableView->setModel(QueryModel);
//依次设置列标题、列宽等
for (int i = 0;i<TableView->model()->columnCount();i++)
{
QueryModel->setHeaderData(i,Qt::Horizontal,columnNames[i]); //设置列标题
TableView->setColumnWidth(i,columnWidths[i]); //设置列宽
}
TableView->setSelectionBehavior(QAbstractItemView::SelectRows); //选中整行
}
void AdminDialog::BindDataSelect(QString tableName, QTableView *tableView,QString where, QString columnNames[], int columnWidths[])
{
TableView = tableView;
QString sql = "SELECT * FROM " + tableName+where+";";
qDebug() <<sql;
QueryModel->setQuery(sql);
TableView->setModel(QueryModel);
//依次设置列标题、列宽等
for (int i=0;i<TableView->model()->columnCount();i++){
QueryModel->setHeaderData(i,Qt::Horizontal,columnNames[i]);//设置列标题
TableView->setColumnWidth(i,columnWidths[i]);//设置列宽
}
TableView->setSelectionBehavior(QAbstractItemView::SelectRows);//选中整行
}
void AdminDialog::BindSearchtableInfo(QString tableName, QTableView *TableView, QString columnNames[], int columnWidths[], QString findvaluesql)
{
findcomboxmodel = new QSqlQueryModel;
QString sql = "SELECT *FROM " + tableName+" where "+findvaluesql+";";
qDebug() <<sql;
findcomboxmodel->setQuery(sql);
TableView->setModel(findcomboxmodel);
//依次设置列标题、列宽等
for (int i = 0;i<TableView->model()->columnCount();i++)
{
findcomboxmodel->setHeaderData(i,Qt::Horizontal,columnNames[i]); //设置列标题
TableView->setColumnWidth(i,columnWidths[i]); //设置列宽
}
TableView->setSelectionBehavior(QAbstractItemView::SelectRows); //选中整行
}
void AdminDialog::changeEvent(QEvent *e)
{
QWidget::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
m_ui->retranslateUi(this);
break;
default:
break;
}
}
void AdminDialog::on_pbnGradeManage_clicked()
{
m_ui->stackedWidget->setCurrentIndex(2);
}
void AdminDialog::on_pbnRoolManage_clicked()
{
m_ui->stackedWidget->setCurrentIndex(0);
}
void AdminDialog::on_pushButton_3_clicked()
{
m_ui->stackedWidget->setCurrentIndex(3);
}
/*
*按系查找
*/
void AdminDialog::on_comboBoxId_activated(const QString &arg1)
{
QString sql = " sno='"+arg1+"'";
this->BindSearchtableInfo("t_student",m_ui->tableView,ColumnName,ColumnWidths,sql);
}
Qt实现的一个简单的学生学籍管理系统
4星 · 超过85%的资源 需积分: 47 80 浏览量
2014-12-28
21:59:23
上传
评论 2
收藏 99KB ZIP 举报
devstone
- 粉丝: 2183
- 资源: 27
最新资源
- 基于ThinkPHP的轻量级PHP开发框架设计源码
- 基于CSS的响应式鲜花网站全屏效果设计源码
- 基于JavaScript的访客预约系统设计源码
- 基于Vue和ECharts的工作租房数据可视化系统设计源码
- 1040g0cg310ravpiu6ibg5pg00tsipsln3ju2d0g 2
- 基于Python的SAR图像去噪CNN-NLM设计源码
- redhat6升级到redhat7,过程redhat6.x-> redhat6.10->rehat7.9 主版本最高版本
- 基于Django的流程引擎设计源码
- 基于Node.js的Express框架与MySQL的后台管理系统设计源码
- 基于Java的Flink流批一体数据处理快速集成开发框架设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈