Files
newspark110/device/ui/workfileeditwidget.cpp
Chenwenxuan edac2715f0 init
2024-03-06 14:54:30 +08:00

274 lines
9.1 KiB
C++

#include "workfileeditwidget.h"
#include "ui_workfileeditwidget.h"
#include "workfileedit/workfileedit.h "
#include <QFileDialog>
#include "rs_settings.h"
#include "deviceproxy.h"
WORKFILEEDITWIDGET::WORKFILEEDITWIDGET(QWidget *parent) :
QWidget(parent),
ui(new Ui::WORKFILEEDITWIDGET)
{
ui->setupUi(this);
WORKFILEEDIT->SetTableView(ui->tvWorkFile);
ComboBoxDelegate *pComboBox = new ComboBoxDelegate(this);
WORKFILEEDIT->SetComboBoxDelegate(pComboBox);
SpinBoxDelegate *pSpinBox = new SpinBoxDelegate(this);
WORKFILEEDIT->SetSpinBoxDelegate(pSpinBox);
// CheckBoxDelegate *pCheckBox = new CheckBoxDelegate(this);
// WORKFILEEDIT->SetCheckBoxDelegate(pCheckBox);
RS_SETTINGS->beginGroup("device/WorkFile"); //?path读不到
QString aFileName = RS_SETTINGS->readEntry("/配方1");
ui->leEditFile->setText(aFileName);
RS_SETTINGS->endGroup();
if (!aFileName.isEmpty())
{
WORKFILEEDIT->open_file(aFileName);
}
//DEV->UpdateWorkData(1);
peifang_model = new QStandardItemModel();
ui->tvPeiFang->setModel (peifang_model) ; //设置数据模型
QStringList headerList;
headerList<<"配方"<<"文件";
peifang_model->setHorizontalHeaderLabels(headerList);
peifang_model->setItem(0,0,new QStandardItem("配方1"));
peifang_model->setItem(1,0,new QStandardItem("配方2"));
peifang_model->setItem(2,0,new QStandardItem("配方3"));
peifang_model->setItem(3,0,new QStandardItem("配方4"));
peifang_model->setItem(4,0,new QStandardItem("配方5"));
peifang_model->setItem(5,0,new QStandardItem("配方6"));
peifang_model->setItem(6,0,new QStandardItem("配方7"));
peifang_model->setItem(7,0,new QStandardItem("配方8"));
peifang_model->setItem(8,0,new QStandardItem("配方9"));
peifang_model->setItem(9,0,new QStandardItem("配方10"));
RS_SETTINGS->beginGroup("device/WorkFile"); //?path读不到
QString aFileName1 = RS_SETTINGS->readEntry("/配方1");
QString aFileName2 = RS_SETTINGS->readEntry("/配方2");
QString aFileName3 = RS_SETTINGS->readEntry("/配方3");
QString aFileName4 = RS_SETTINGS->readEntry("/配方4");
QString aFileName5 = RS_SETTINGS->readEntry("/配方5");
QString aFileName6 = RS_SETTINGS->readEntry("/配方6");
QString aFileName7 = RS_SETTINGS->readEntry("/配方7");
QString aFileName8 = RS_SETTINGS->readEntry("/配方8");
QString aFileName9 = RS_SETTINGS->readEntry("/配方9");
QString aFileName10 = RS_SETTINGS->readEntry("/配方10");
RS_SETTINGS->endGroup();
// if (aFileName1 == "")
// aFileName1 = "配方1";
{
peifang_model->setItem(0,1,new QStandardItem(aFileName1));
peifang_model->setItem(1,1,new QStandardItem(aFileName2));
peifang_model->setItem(2,1,new QStandardItem(aFileName3));
peifang_model->setItem(3,1,new QStandardItem(aFileName4));
peifang_model->setItem(4,1,new QStandardItem(aFileName5));
peifang_model->setItem(5,1,new QStandardItem(aFileName6));
peifang_model->setItem(6,1,new QStandardItem(aFileName7));
peifang_model->setItem(7,1,new QStandardItem(aFileName8));
peifang_model->setItem(8,1,new QStandardItem(aFileName9));
peifang_model->setItem(9,1,new QStandardItem(aFileName10));
}
//设置表格的各列的宽度值
ui->tvPeiFang->setColumnWidth(0,80);
ui->tvPeiFang->setColumnWidth(1,350);
ui->tvPeiFang->setEditTriggers(QAbstractItemView::NoEditTriggers);
}
WORKFILEEDITWIDGET::~WORKFILEEDITWIDGET()
{
delete ui;
}
void WORKFILEEDITWIDGET::on_pbAddRow_clicked()
{
WORKFILEEDIT->add_row();
}
void WORKFILEEDITWIDGET::on_pbInsertRow_clicked()
{
WORKFILEEDIT->insert_row();
}
void WORKFILEEDITWIDGET::on_pbDeleteRow_clicked()
{
WORKFILEEDIT->delete_row();
}
void WORKFILEEDITWIDGET::on_pbMoveP_clicked()
{
WORKFILEEDIT->move_P();
}
void WORKFILEEDITWIDGET::on_pbMoveN_clicked()
{
WORKFILEEDIT->move_N();
}
void WORKFILEEDITWIDGET::on_pbNewFile_clicked()
{
WORKFILEEDIT->new_file();
ui->leEditFile->setText("");
}
void WORKFILEEDITWIDGET::on_pbLoadFile_clicked()
{
QString curPath=QCoreApplication::applicationDirPath(); //获取应用程序的路径
QString aFileName=QFileDialog::getOpenFileName(this,"打开一个文件",curPath, "数据文件(*.WI);;所有文件(*.*)");
WORKFILEEDIT->open_file(aFileName);
ui->leEditFile->setText(aFileName);
}
void WORKFILEEDITWIDGET::on_pbSaveFile_clicked()
{
QString aFileName;
if (WORKFILEEDIT->getWorkFileName() == "")
{
QString curPath=QCoreApplication::applicationDirPath(); //获取应用程序的路径
aFileName = QFileDialog::getSaveFileName(this,"保存文件",curPath,"数据文件(*.WI);;所有文件(*.*)");
WORKFILEEDIT->save_file(aFileName);
ui->leEditFile->setText(aFileName);
}
else
{
WORKFILEEDIT->save_file(WORKFILEEDIT->getWorkFileName());
ui->leEditFile->setText(WORKFILEEDIT->getWorkFileName());
}
QMessageBox::information(this, "提示", "文件保存成功!");
}
void WORKFILEEDITWIDGET::on_pbDeleteFile_clicked()
{
WORKFILEEDIT->delete_file();
ui->leEditFile->setText("");
}
//void WORKFILEEDITWIDGET::on_pbSelectWorkFile_clicked()
//{
// QString curPath=QCoreApplication::applicationDirPath(); //获取应用程序的路径
// QString aFileName=QFileDialog::getOpenFileName(this,"选择文件",curPath, "数据文件(*.WI);;所有文件(*.*)");
// if (aFileName == "")
// return;
// QString str;
// ui->leWorkFile->setText(aFileName);
// str = "/" + ui->mbMode->currentText();
// RS_SETTINGS->beginGroup("device/WorkFile");
// RS_SETTINGS->writeEntry(str,aFileName);
// RS_SETTINGS->endGroup();
// //DEV->UpdateWorkData(1);
//// QFile aFile(aFileName); //以文件方式读出
//// if (aFile.open(QIODevice::ReadOnly)) //以只读文本方式打开文件
//// {
//// QTextStream aStream(&aFile); //用文本流读取文件
//// while (!aStream.atEnd())
//// {
//// QString str=aStream.readLine();//读取文件的一行
//// DEV->fFileContent.append(str); //添加到 StringList
//// }
//// aFile.close();//关闭文件
//// }
//}
void WORKFILEEDITWIDGET::on_tvWorkFile_doubleClicked(const QModelIndex &index)
{
int curRow=ui->tvWorkFile->currentIndex().row();//选中行
int curCol=ui->tvWorkFile->currentIndex().column();//选中行
QAbstractItemModel *modessl = ui->tvWorkFile->model();
QModelIndex indextemp = modessl->index(curRow,0);//遍历第一行的所有列
QString value = indextemp.model()->data(indextemp, Qt::DisplayRole).toString();
//ui->tvWorkFile->model(); model->setData(index, spinbox->value());
if (curCol == 1)
{
if ((value == "加工") || (value == "功率测量") || (value == "DD马达"))
ui->tvWorkFile->setEditTriggers(QAbstractItemView::DoubleClicked);
else
ui->tvWorkFile->setEditTriggers(QAbstractItemView::NoEditTriggers);
}
else if (curCol == 2)
{
if (value != "加工")
ui->tvWorkFile->setEditTriggers(QAbstractItemView::NoEditTriggers);
else
ui->tvWorkFile->setEditTriggers(QAbstractItemView::DoubleClicked);
}
else
{
ui->tvWorkFile->setEditTriggers(QAbstractItemView::DoubleClicked);
}
//model->setData(index, combox->currentText());
}
void WORKFILEEDITWIDGET::on_pbSaveAs_clicked()
{
QString aFileName;
QString curPath=QCoreApplication::applicationDirPath(); //获取应用程序的路径
aFileName = QFileDialog::getSaveFileName(this,"保存文件",curPath,"数据文件(*.WI);;所有文件(*.*)");
WORKFILEEDIT->save_file(aFileName);
ui->leEditFile->setText(aFileName);
QMessageBox::information(this, "提示", "文件保存成功!");
}
//void WORKFILEEDITWIDGET::on_mbMode_currentTextChanged(const QString &arg1)
//{
// QString str;
// str = "/" + arg1;
// RS_SETTINGS->beginGroup("device/WorkFile"); //?path读不到
// QString aFileName = RS_SETTINGS->readEntry(str);
// ui->leWorkFile->setText(aFileName);
// RS_SETTINGS->endGroup();
//}
void WORKFILEEDITWIDGET::on_tvPeiFang_doubleClicked(const QModelIndex &index)
{
int curRow=ui->tvPeiFang->currentIndex().row();//选中行
int curCol=ui->tvPeiFang->currentIndex().column();//选中行
QAbstractItemModel *modessl = ui->tvPeiFang->model();
QModelIndex indextemp = modessl->index(curRow,0);//遍历第一行的所有列
QString value = indextemp.model()->data(indextemp, Qt::DisplayRole).toString();
if (curCol == 1)
{
QString curPath=QCoreApplication::applicationDirPath(); //获取应用程序的路径
QString aFileName=QFileDialog::getOpenFileName(this,"选择文件",curPath, "数据文件(*.WI);;所有文件(*.*)");
// if (aFileName == "")
// return;
QString str;
//ui->leWorkFile->setText(aFileName);
str = "/" + value;
RS_SETTINGS->beginGroup("device/WorkFile");
RS_SETTINGS->writeEntry(str,aFileName);
RS_SETTINGS->endGroup();
ui->tvPeiFang->model()->setData(index, aFileName);
}
}