public:
explicit lishishuju(QWidget *parent = 0); ~lishishuju(); private:
Ui::lishishuju *ui; QSqlTableModel *model;
bool isSaved;//true为保存,false为未保存 QString curFile;//保存文件的名字 QString filename; signals:
void show_this1(); public slots:
void charu(QString guangzhaodu1,QString guangzhaodu2,QString guangzhaodu3); private slots:
void on_shanchuzhongduan_clicked(); void on_shanchu_clicked(); void on_daochu_clicked(); void on_pushButton_clicked(); };
#endif // LISHISHUJU_H
/*********************** lishishuji.cpp*************************************/
#include \ #include \ #include
20
lishishuju::lishishuju(QWidget *parent) : QDialog(parent), ui(new Ui::lishishuju) {
ui->setupUi(this);
this->setWindowTitle(tr(\历史记录\)); isSaved=false;//初始化为未保存状态
curFile=tr(\未命名.txt\);//初始化文件名为\未命名.txt\ model = new QSqlTableModel(this); model->setTable(\);
model->setHeaderData(1, Qt::Horizontal, tr(\日期\)); model->setHeaderData(2, Qt::Horizontal, tr(\时间\)); model->setHeaderData(3, Qt::Horizontal, tr(\测点1光照度\)); model->setHeaderData(4, Qt::Horizontal, tr(\测点2光照度\)); model->setHeaderData(5, Qt::Horizontal, tr(\测点3光照度\)); model->select();
ui->tableView->setModel(model);
ui->tableView->setSelectionMode(QAbstractItemView::SingleSelection); ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); ui->tableView->resizeColumnsToContents(); ui->tableView->setColumnWidth(1,130); ui->tableView->setColumnWidth(2,100); ui->tableView->setColumnWidth(3,90); ui->tableView->setColumnWidth(4,90); ui->tableView->setColumnWidth(5,90);
ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);//不可写 QHeaderView *header = ui->tableView->horizontalHeader(); header->setStretchLastSection(true); }
lishishuju::~lishishuju() {
delete ui; }
void lishishuju::on_pushButton_clicked() {
21
emit this->show_this1(); }
void lishishuju::on_daochu_clicked() {
filename=QFileDialog::getSaveFileName(this,tr(\另存为\),curFile); if(!filename.isEmpty()) {
QFile file(filename);
if(!file.open(QFile::WriteOnly|QFile::Text)) {
QMessageBox::warning(this,tr(\保存文件\),tr(\无法保存文件%1:\\n%2\).arg(filename).arg(file.errorString()));
return; } else {
QTextStream out(&file);//新建流对象,指向选定的文件
out<<\ \<
int a= model->rowCount(); for(int x=0;x
QSqlRecord record=model->record(x); QString riqi=record.value(\).toString(); QString shijian=record.value(\).toString();
QString guangzhaodu1=record.value(\).toString(); QString guangzhaodu2=record.value(\).toString(); QString guangzhaodu3=record.value(\).toString(); out< 22 void lishishuju::on_shanchu_clicked() { int ook=QMessageBox::warning(this,tr(\删除当前数据!\),tr(\你确定删除当前数据吗?\),QMessageBox::Yes,QMessageBox::No); if(ook==QMessageBox::No) { return; } else { int a= model->rowCount(); for(int b=a-1;b>=0;b--) { model->removeRow(b); } } } void lishishuju::on_shanchuzhongduan_clicked() { int ook=QMessageBox::warning(this,tr(\删除当前监测点!\),tr(\你确定删除当前数据吗?\),QMessageBox::Yes,QMessageBox::No); if(ook==QMessageBox::No) { return; } int shanhangshu=ui->tableView->currentIndex().row(); model->removeRow(shanhangshu); } void lishishuju::charu(QString guangzhaodu1,QString guangzhaodu2,QString guangzhaodu3) { qDebug()<<\; model->insertRows(0,1); model->setData(model->index(0,1),(new QDate)->currentDate().toString(\)); model->setData(model->index(0,2),(new QTime)->currentTime().toString(\)); 23 model->setData(model->index(0,3),guangzhaodu1); model->setData(model->index(0,4),guangzhaodu2); model->setData(model->index(0,5),guangzhaodu3); model->submitAll(); } 24