logplus/DataMgr/src/cdialog.cpp

307 lines
7.8 KiB
C++
Raw Normal View History

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"
#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();
}