#include "cdialog.h" #include #include "ui_cdialog.h" #include "ui_sigleview.h" #include "ui_doubleeditview.h" #include "ui_sigleTextview.h" #include "geometryutils.h" #include #include 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;itableWidget->horizontalHeaderItem(i)->text(); else colname=doubleUi->tableWidget->horizontalHeaderItem(i)->text(); if(colname=="导入井名")//QString::fromLocal8Bit("导入井名"))//"导入表名 { for(int j=0;jtableWidget->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;jtableWidget->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;iwidgetView->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(); }