#include "mainwindow.h"
#include "ui_mainwindow.h"
// tablewidget: 2w 0s 20w 4s 200w 38s
//tableview: 2w 1s 20w 8s
#define Level_1 20000
#define EACH 100
#include<QDebug>
#include<QDateTime>
#include"pagewidget.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->tableView->hide();
ui->tableWidget->show();
for(int i=0; i<Level_1;i++)
{
Student st;
st.grade = i;
st.num = i;
st.name = QString("zx");
m_stuList.append(st);
}
int totalPage = Level_1/EACH;
pw = new PageWidget(this,totalPage);
connect(pw,SIGNAL(signal_sendCurrentPage(int )),
this,SLOT(updateTable(int)));
ui->horizontalLayout_2->addWidget(pw);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::updateTableWidget()
{
qDebug()<<"start time: "<<QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss");
QStringList strList;
strList.push_back(QString::fromLocal8Bit("Name"));
strList.push_back(QString::fromLocal8Bit("Nun"));
strList.push_back(QString::fromLocal8Bit("Grade"));
ui->tableWidget->horizontalHeader()->setVisible(true);
ui->tableWidget->verticalHeader()->setVisible(false);
ui->tableWidget->setShowGrid(true);
ui->tableWidget->setColumnCount(strList.size());
ui->tableWidget->setHorizontalHeaderLabels(strList);
ui->tableWidget->setColumnWidth(0,100);
ui->tableWidget->setColumnWidth(1,120);
ui->tableWidget->setColumnWidth(2,120);
updateTable(1);
// int total = 0;
// QTableWidgetItem * item = new QTableWidgetItem("");
// ui->tableWidget->clearContents();
// while(ui->tableWidget->rowCount())
// {
// ui->tableWidget->removeRow(0);
// }
// foreach(Student stu, m_stuList)
// {
// ui->tableWidget->insertRow(total);
// item = new QTableWidgetItem(stu.name);
// ui->tableWidget->setItem(total,0,item);
// item = new QTableWidgetItem(QString::number(stu.num));
// ui->tableWidget->setItem(total,1,item);
// item = new QTableWidgetItem(QString::number(stu.grade));
// ui->tableWidget->setItem(total,2,item);
// total++;
// }
qDebug()<<"end time: "<<QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss");
}
void MainWindow::updateTableView()
{
}
void MainWindow::updateTable(int page)
{
qDebug()<<"updateTable current page is "<<page;
ui->tableWidget->setRowCount(0);
ui->tableWidget->clearContents();
int start = (page-1)*100;
int end = page*100;
QTableWidgetItem * item = new QTableWidgetItem("");
int row = 0;
for(int i=start;i<end;i++)
{
ui->tableWidget->insertRow(row);
item = new QTableWidgetItem(m_stuList.at(i).name);
ui->tableWidget->setItem(row,0,item);
item = new QTableWidgetItem(QString::number(m_stuList.at(i).num));
ui->tableWidget->setItem(row,1,item);
item = new QTableWidgetItem(QString::number(m_stuList.at(i).grade));
ui->tableWidget->setItem(row,2,item);
row++;
}
}
void MainWindow::on_pushButton_clicked()
{
ui->tableView->hide();
ui->tableWidget->show();
updateTableWidget();
}
void MainWindow::on_pushButton_2_clicked()
{
ui->tableWidget->hide();
ui->tableView->show();
qDebug()<<"start time: "<<QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss");
db_table_model_ = new QStandardItemModel();
ui->tableView->setModel(db_table_model_);
QStringList strList;
strList.push_back(QString::fromLocal8Bit("Name"));
strList.push_back(QString::fromLocal8Bit("Nun"));
strList.push_back(QString::fromLocal8Bit("Grade"));
db_table_model_->setHorizontalHeaderLabels(strList);
// db_table_model_->setItem(0, 0, new QStandardItem("1"));
// db_table_model_->setItem(0, 1, new QStandardItem("2"));
// db_table_model_->setItem(0, 2, new QStandardItem("3"));
// QList<QStandardItem*> add_items;
// for (int index = 0; index < strList.count(); ++index) {
// add_items << new QStandardItem(QString::number(index));
// }
// db_table_model_->appendRow(add_items);
db_table_model_->removeRows(0,db_table_model_->rowCount());
int total = 0;
foreach(Student stu, m_stuList)
{
db_table_model_->setItem(total, 0, new QStandardItem(QString::number(stu.num)));
db_table_model_->setItem(total, 1, new QStandardItem(QString::number(stu.grade)));
db_table_model_->setItem(total, 2, new QStandardItem(stu.name));
total++;
}
qDebug()<<"end time: "<<QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss");
}
void MainWindow::on_pushButton_3_clicked()
{
db_table_model_->removeRows(0,db_table_model_->rowCount());
}