123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- #include <QFile>
- #include <QTextStream>
- #include <QDebug>
- #include <QMessageBox>
- #include "ExcelTable.h"
- #include "ProfessionInfo.h"
- MainWindow::MainWindow(QWidget *parent)
- : QMainWindow(parent)
- , ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- QStringList evaluate;
- evaluate << "姓名";
- evaluate << "单位";
- evaluate << "职务";
- InitTableWidget(evaluate);
- }
- MainWindow::~MainWindow()
- {
- delete ui;
- }
- void MainWindow::InitTableWidget(QStringList header)
- {
- //设置整行选中的方式
- ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectItems);
- ui->tableWidget->setColumnCount(header.count());
- ui->tableWidget->setRowCount(header.count());
- ui->tableWidget->setHorizontalHeaderLabels(header);
- ui->tableWidget->setVerticalHeaderLabels(header);
- // ui->tableWidget->verticalHeader()->setHidden(true);
- // ui->tableWidget->horizontalHeader()->setHidden(true);
- ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); //填充表格
- // ui->tableWidget->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents); //然后设置要根据内容使用宽度的列(其他没设置的列自动缩放)
- return;
- }
- QStringList MainWindow::GetTabelContent(QString professionalName, QString nodeLevel)
- {
- //采取下面方式获取
- QStringList tableContents;
- int rowCount = ui->tableWidget->rowCount();
- int colCount = ui->tableWidget->columnCount();
- for (int row = 0; row < rowCount; row++) {
- QString rowName = ui->tableWidget->verticalHeaderItem(row)->text();
- QString rowNode = QString("%1").arg(row);
- for(int col = 0; col < colCount; col++)
- {
- QString colName = ui->tableWidget->horizontalHeaderItem(col)->text();
- if(ui->tableWidget->item(row, col) == NULL)
- {
- qDebug() << row << col;
- QMessageBox::information(NULL, "警告", "表格有空值!!!");
- return QStringList();
- }
- if(ui->tableWidget->item(row,col) != NULL) //一定要先判断非空,否则会报错
- {
- QString node_Name = nodeLevel+"."+rowNode;
- qDebug() << "node_Name = " << node_Name;
- QString tableText = ui->tableWidget->item(row,col)->text();
- tableContents << professionalName << node_Name << rowName << colName << tableText;
- }
- }
- }
- return tableContents;
- }
- void MainWindow::SetTableContent(QTableWidget* tabWidget, QStringList values)
- {
- int i = 0;
- for(int row = 0; row < tabWidget->rowCount(); row++)
- {
- for(int col = 0; col < tabWidget->columnCount(); col++)
- {
- tabWidget->item(row,col)->setText(values[i]);
- i++;
- }
- }
- }
- void MainWindow::on_restoreBtn_clicked()
- {
- QStringList values = GetTabelContent("专家1", "1");
- qDebug() << values;
- // QString fileName;
- // QFile myfile(fileName + "/testResult.txt");
- // if (myfile.open(QIODevice::WriteOnly | QIODevice::Text)) // 以文本文式写入
- // {
- // QTextStream out(&myfile);
- // foreach (auto wave, temp) {
- //// out << param.name << " " << param.value << " " << param.unit;
- // }
- // out << "\n";
- // }
- // }
- }
- void MainWindow::on_pushButton_clicked()
- {
- ExcelTable * excelTable = new ExcelTable(this);
- excelTable->show();
- }
- void MainWindow::on_pushButton_2_clicked()
- {
- ProfessionalInfo* professionalInfo = new ProfessionalInfo(this);
- professionalInfo->show();
- }
|