2025-10-30 09:50:15 +08:00
|
|
|
|
#include "cdialog.h"
|
|
|
|
|
|
#include <QTableWidget>
|
|
|
|
|
|
#include "ui_cdialog.h"
|
|
|
|
|
|
#include "ui_sigleview.h"
|
|
|
|
|
|
#include "ui_doubleeditview.h"
|
2025-12-02 15:23:42 +08:00
|
|
|
|
#include "ui_sigleTextview.h"
|
|
|
|
|
|
#include "geometryutils.h"
|
2025-10-30 09:50:15 +08:00
|
|
|
|
#include <QGridLayout>
|
|
|
|
|
|
#include <QMessageBox>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CDialog::CDialog(QWidget *parent) :
|
|
|
|
|
|
QDialog(parent),
|
|
|
|
|
|
ui(new Ui::CDialog),
|
|
|
|
|
|
doubleUi(new Ui::DoubleView),
|
|
|
|
|
|
signleUi(new Ui::SignleView),
|
|
|
|
|
|
signleTextUi(new Ui::SignleTextView)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
m_num=0;
|
|
|
|
|
|
ui->setupUi(this);
|
|
|
|
|
|
// setWindowFlags(Qt::Dialog|Qt::WindowStaysOnTopHint|Qt::WindowTitleHint| Qt::CustomizeWindowHint);
|
|
|
|
|
|
setWindowFlags(Qt::Dialog|Qt::WindowTitleHint| Qt::CustomizeWindowHint);
|
|
|
|
|
|
// QObject::connect(ui->btnOk, SIGNAL(clicked()), this, SLOT(on_btnOk_clicked()));
|
|
|
|
|
|
QObject::connect(ui->cancelbtn, SIGNAL(clicked()), this, SLOT(slotCancel()));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
CDialog::~CDialog()
|
|
|
|
|
|
{
|
|
|
|
|
|
delete ui;
|
|
|
|
|
|
delete doubleUi;
|
|
|
|
|
|
delete signleUi;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
void CDialog::slotCancel()
|
|
|
|
|
|
{
|
|
|
|
|
|
reject ();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void CDialog::setMessage(const QString &msg)
|
|
|
|
|
|
{
|
|
|
|
|
|
int val=m_num%3;
|
|
|
|
|
|
if(!val)return;
|
|
|
|
|
|
else if(val==1)doubleUi->textEdit_2->setText(msg);
|
|
|
|
|
|
else signleTextUi->textEdit_2->setText(msg);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CDialog::setTitle(const QString &title)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
this->setWindowTitle(title);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CDialog::closeDialog()
|
|
|
|
|
|
{
|
|
|
|
|
|
this->close();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CDialog::on_btnOk_clicked()
|
|
|
|
|
|
{
|
|
|
|
|
|
//beCheck点击确定时是否需要对字符串有效性检查,col1、col2为检查的列序号
|
|
|
|
|
|
int val=m_num%3;
|
|
|
|
|
|
if(m_beCheck&&val<=1)
|
|
|
|
|
|
{
|
|
|
|
|
|
int col,row;
|
|
|
|
|
|
if(!val)
|
|
|
|
|
|
{
|
|
|
|
|
|
col=signleUi->tableWidget->columnCount();
|
|
|
|
|
|
row=signleUi->tableWidget->rowCount();
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
col=doubleUi->tableWidget->columnCount();
|
|
|
|
|
|
row=doubleUi->tableWidget->rowCount();
|
|
|
|
|
|
}
|
|
|
|
|
|
QString name,colname;
|
|
|
|
|
|
for(int i=0;i<col;i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
if(!val)colname=signleUi->tableWidget->horizontalHeaderItem(i)->text();
|
|
|
|
|
|
else colname=doubleUi->tableWidget->horizontalHeaderItem(i)->text();
|
|
|
|
|
|
if(colname=="导入井名")//QString::fromLocal8Bit("导入井名"))//"导入表名
|
|
|
|
|
|
{
|
|
|
|
|
|
for(int j=0;j<row;j++)
|
|
|
|
|
|
{
|
|
|
|
|
|
int IsCheck=0;
|
|
|
|
|
|
if(!val)IsCheck=signleUi->tableWidget->item(j,0)->checkState();
|
|
|
|
|
|
else IsCheck=doubleUi->tableWidget->item(j,0)->checkState();
|
|
|
|
|
|
if(!IsCheck)continue;
|
|
|
|
|
|
if(!val)name=signleUi->tableWidget->item(j,i)->text() ;
|
|
|
|
|
|
else name=doubleUi->tableWidget->item(j,i)->text() ;
|
|
|
|
|
|
if(name==""){
|
|
|
|
|
|
QMessageBox::warning(NULL,"提示","导入井名不能为空");
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if(IsValidWellName(name)==0){
|
|
|
|
|
|
QMessageBox::warning(NULL,"提示","'"+name+"'不符合井名命名规则");
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else if(colname=="导入表名")//QString::fromLocal8Bit("导入表名"))//"导入表名
|
|
|
|
|
|
{
|
|
|
|
|
|
for(int j=0;j<row;j++)
|
|
|
|
|
|
{
|
|
|
|
|
|
int IsCheck=0;
|
|
|
|
|
|
if(!val)IsCheck=signleUi->tableWidget->item(j,0)->checkState();
|
|
|
|
|
|
else IsCheck=doubleUi->tableWidget->item(j,0)->checkState();
|
|
|
|
|
|
if(!IsCheck)continue;
|
|
|
|
|
|
if(!val)name=signleUi->tableWidget->item(j,i)->text() ;
|
|
|
|
|
|
else name=doubleUi->tableWidget->item(j,i)->text() ;
|
|
|
|
|
|
if(name==""){
|
|
|
|
|
|
QMessageBox::warning(NULL,"提示","导入表名不能为空");
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
this->close();
|
|
|
|
|
|
accept();
|
|
|
|
|
|
}
|
|
|
|
|
|
void CDialog::clearControls(QObjectList list)
|
|
|
|
|
|
{
|
|
|
|
|
|
QObject* child=NULL;
|
|
|
|
|
|
for(int i=0;i<list.size();i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
child=list.value(i);
|
|
|
|
|
|
if(NULL != child)
|
|
|
|
|
|
{
|
|
|
|
|
|
delete child;
|
|
|
|
|
|
child=NULL;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
//设置对话框类型:0-只有列表框,1-左列表,右文本,2-只有文本框
|
|
|
|
|
|
//beCheck点击确定时是否需要对字符串有效性检查
|
|
|
|
|
|
void CDialog::setDialogType(int num,bool beCheck)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_num=num;
|
|
|
|
|
|
m_beCheck=beCheck;
|
|
|
|
|
|
QObjectList lst=ui->widgetView->children();
|
|
|
|
|
|
clearControls(lst);
|
|
|
|
|
|
int val=m_num%3;
|
|
|
|
|
|
if(val==0)
|
|
|
|
|
|
{
|
|
|
|
|
|
signleUi->setupUi(ui->widgetView);
|
|
|
|
|
|
}
|
|
|
|
|
|
else if(val==1)
|
|
|
|
|
|
{
|
|
|
|
|
|
doubleUi->setupUi(ui->widgetView);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
signleTextUi->setupUi(ui->widgetView);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void CDialog::showEvent(QShowEvent *event)
|
|
|
|
|
|
{
|
|
|
|
|
|
QDialog::showEvent(event);
|
|
|
|
|
|
QRect geome= geometry();
|
|
|
|
|
|
QSize dialogSize=geome.size();
|
|
|
|
|
|
QSize sizeView;
|
|
|
|
|
|
int val=m_num%3;
|
|
|
|
|
|
switch (val) {
|
|
|
|
|
|
case 0:
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
sizeView=signleUi->verticalLayout->sizeHint();
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
{
|
|
|
|
|
|
sizeView=doubleUi->horizontalLayout->sizeHint();
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
|
|
|
{
|
|
|
|
|
|
sizeView=signleTextUi->horizontalLayout->sizeHint();
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
setGeometry(geome.x(),geome.y(),sizeView.width(),dialogSize.height());
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
void CDialog::setTiShi(int No,QString mes)
|
|
|
|
|
|
{
|
|
|
|
|
|
int val=m_num%3;
|
|
|
|
|
|
if(!val&&No>1)return;
|
|
|
|
|
|
if(val>=2&&No>1)return;
|
|
|
|
|
|
switch (No) {
|
|
|
|
|
|
case 0:
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
if(!val)signleUi->label->setText(mes);
|
|
|
|
|
|
else if(val==1)doubleUi->label->setText(mes);
|
|
|
|
|
|
else signleTextUi->label_3->setText(mes);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
{
|
|
|
|
|
|
if(!val)signleUi->label_2->setText(mes);
|
|
|
|
|
|
else if(val==1)doubleUi->label_2->setText(mes);
|
|
|
|
|
|
else signleTextUi->label_4->setText(mes);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 2:
|
|
|
|
|
|
{
|
|
|
|
|
|
doubleUi->label_3->setText(mes);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 3:
|
|
|
|
|
|
{
|
|
|
|
|
|
doubleUi->label_4->setText(mes);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
void CDialog::init(int row,int col,QStringList header)
|
|
|
|
|
|
{
|
|
|
|
|
|
int val=m_num%3;
|
|
|
|
|
|
if(val>=2)return;
|
|
|
|
|
|
switch (val) {
|
|
|
|
|
|
case 0:
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
signleUi->tableWidget->setColumnCount(col);
|
|
|
|
|
|
signleUi->tableWidget->setHorizontalHeaderLabels(header);
|
|
|
|
|
|
|
|
|
|
|
|
signleUi->tableWidget->horizontalHeader()->setStretchLastSection(true);
|
|
|
|
|
|
signleUi->tableWidget->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
|
|
|
|
|
|
if(col>=2)signleUi->tableWidget->horizontalHeader()->setSectionResizeMode(1, QHeaderView::ResizeToContents);
|
|
|
|
|
|
if(col>=3)signleUi->tableWidget->horizontalHeader()->setSectionResizeMode(2, QHeaderView::ResizeToContents);
|
|
|
|
|
|
signleUi->tableWidget->setRowCount(row);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
default:
|
|
|
|
|
|
{
|
|
|
|
|
|
doubleUi->tableWidget->setColumnCount(col);
|
|
|
|
|
|
doubleUi->tableWidget->setHorizontalHeaderLabels(header);
|
|
|
|
|
|
|
|
|
|
|
|
doubleUi->tableWidget->horizontalHeader()->setStretchLastSection(true);
|
|
|
|
|
|
doubleUi->tableWidget->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
|
|
|
|
|
|
if(col>=2)doubleUi->tableWidget->horizontalHeader()->setSectionResizeMode(1, QHeaderView::ResizeToContents);
|
|
|
|
|
|
if(col>=3)doubleUi->tableWidget->horizontalHeader()->setSectionResizeMode(2, QHeaderView::ResizeToContents);
|
|
|
|
|
|
doubleUi->tableWidget->setRowCount(row);
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
void CDialog::setCheckState(int row, int column, Qt::CheckState state)
|
|
|
|
|
|
{
|
|
|
|
|
|
int val=m_num%3;
|
|
|
|
|
|
if(val>=2)return;
|
|
|
|
|
|
if(!val)signleUi->tableWidget->item(row,column)->setCheckState(Qt::Checked);
|
|
|
|
|
|
else doubleUi->tableWidget->item(row,column)->setCheckState(Qt::Checked);
|
|
|
|
|
|
}
|
|
|
|
|
|
void CDialog::setFlags(int row, int column, Qt::ItemFlags flags)//设置单元格编辑状态
|
|
|
|
|
|
{
|
|
|
|
|
|
int val=m_num%3;
|
|
|
|
|
|
if(val>=2)return;
|
|
|
|
|
|
if(!val)signleUi->tableWidget->item(row,column)->setFlags(flags);
|
|
|
|
|
|
else doubleUi->tableWidget->item(row,column)->setFlags(flags);
|
|
|
|
|
|
}
|
|
|
|
|
|
void CDialog::setItem(int row, int col, QString str)//QTableWidgetItem *item)
|
|
|
|
|
|
{
|
|
|
|
|
|
int val=m_num%3;
|
|
|
|
|
|
if(val>=2)return;
|
|
|
|
|
|
switch (val) {
|
|
|
|
|
|
case 0:
|
|
|
|
|
|
{
|
|
|
|
|
|
signleUi->tableWidget->setItem(row,col,new QTableWidgetItem(str));//new QTableWidgetItem(QString::number(i*col+j)));
|
|
|
|
|
|
//if(!col)signleUi->tableWidget->item(row,0)->setCheckState(Qt::Checked);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
default:
|
|
|
|
|
|
{
|
|
|
|
|
|
doubleUi->tableWidget->setItem(row,col,new QTableWidgetItem(str));//new QTableWidgetItem(QString::number(i*col+j)));
|
|
|
|
|
|
//if(!col)doubleUi->tableWidget->item(row,0)->setCheckState(Qt::Checked);
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
QString CDialog::getItem(int row, int column)
|
|
|
|
|
|
{
|
|
|
|
|
|
int val=m_num%3;
|
|
|
|
|
|
if(val>=2)return "";
|
|
|
|
|
|
if(!val)return signleUi->tableWidget->item(row,column)->text();
|
|
|
|
|
|
else return doubleUi->tableWidget->item(row,column)->text();
|
|
|
|
|
|
}
|
|
|
|
|
|
bool CDialog::getCheckState(int row, int column)
|
|
|
|
|
|
{
|
|
|
|
|
|
int val=m_num%3;
|
|
|
|
|
|
if(val>=2)return 0;
|
|
|
|
|
|
if(!val)return signleUi->tableWidget->item(row,column)->checkState();
|
|
|
|
|
|
else return doubleUi->tableWidget->item(row,column)->checkState();
|
|
|
|
|
|
}
|