#include "importtemplate.h" #include "ui_importtemplate.h" #include #include #include #include #include "warning/warning.h" #include "lhstylemanager.h" ImportTemplate::ImportTemplate(QStringList& tabList,QWidget *parent) : QDialog(parent), ui(new Ui::ImportTemplate) { ui->setupUi(this); /* 设置隐藏边框 */ this->setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint); /* 设置底层样式表 */ this->setAttribute(Qt::WA_TranslucentBackground); /* 加载QSS文件 */ // QFile file(":/QSS/QSS/importtemplate_light.qss"); // if(file.open(QFile::ReadOnly)) // { // QString styleSheet = file.readAll(); // this->setStyleSheet(styleSheet); // file.close(); // } LHStyleManager::Instance()->AddWidget(this); m_templateName.clear(); /* 设置列数,列宽、列高、不可编辑、选择一行 */ ui->tableWidget->setColumnCount(3); //设置行高 ui->tableWidget->verticalHeader()->setDefaultSectionSize(48); /* 设置最小列宽 */ ui->tableWidget->horizontalHeader()->setMinimumSectionSize(10); /* 设置列宽间距 */ ui->tableWidget->setColumnWidth(0,46); ui->tableWidget->setColumnWidth(1,272); ui->tableWidget->setColumnWidth(2,60); //设置不可编辑 ui->tableWidget->setEditTriggers(QTableWidget::NoEditTriggers); //设置选中一行 ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); //设置只能选中一行 ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); //隐藏竖滚动条 ui->tableWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); //隐藏横滚动条 ui->tableWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); //隐藏网格线 ui->tableWidget->setShowGrid(false); //隐藏行号 ui->tableWidget->verticalHeader()->setVisible(false); //隐藏列表头 ui->tableWidget->horizontalHeader()->setVisible(false); //设置不显示选中后的虚线 ui->tableWidget->setFocusPolicy(Qt::NoFocus); //开启排序功能 // ui->tableWidget->setSortingEnabled(true); ui->label_warning->hide(); connect(ui->pBtn_close,SIGNAL(clicked()),this,SLOT(close())); connect(ui->pBtn_cancel,SIGNAL(clicked()),this,SLOT(close())); connect(ui->pBtn_ok,SIGNAL(clicked()),this,SLOT(do_ok())); connect(ui->tableWidget,SIGNAL(cellClicked(int,int)),this,SLOT(do_seletctRow(int,int))); /* 先设置表格的行数 */ ui->tableWidget->setRowCount(tabList.count()); for(int i = 0;i < tabList.count();i++) { createRow(i,i + 1,tabList.at(i)); } } ImportTemplate::~ImportTemplate() { delete ui; } void ImportTemplate::do_ok() { ui->label_warning->hide(); if(m_templateName.isEmpty()) { ui->label_warning->setText("请选择模版"); ui->label_warning->show(); return; } m_isOk = true; emit signal_templateName(m_templateName); this->close(); } /* 选中一行 */ void ImportTemplate::do_seletctRow(int row, int col) { if(col == 2) { /* 弹出框提示确定要删除 */ Warning w(this); w.setText("是否删除模板?"); bool flag = false; connect(&w,&Warning::signal_ok,this,[&](){ flag = true; }); w.exec(); if(!flag) { return; } emit signal_deleteTemplate(ui->tableWidget->item(row,1)->text()); ui->tableWidget->removeRow(row); /* 对模版重新编号 */ for(int i = 0 ;i < ui->tableWidget->rowCount();i++) { ui->tableWidget->item(i,0)->setData(Qt::DisplayRole,i+1); } }else { m_templateName = ui->tableWidget->item(row,1)->text(); } } /* 创建一行数据 */ void ImportTemplate::createRow(int row,int num,const QString &text) { QTableWidgetItem* item = new QTableWidgetItem; item->setData(Qt::DisplayRole,num); // item->setTextAlignment(Qt::AlignVCenter); ui->tableWidget->setItem(row,0,item); item = new QTableWidgetItem(text); // item->setTextAlignment(Qt::AlignVCenter | Qt::AlignLeft); ui->tableWidget->setItem(row,1,item); item = new QTableWidgetItem("删除"); // item->setTextAlignment(Qt::AlignVCenter | Qt::AlignHCenter); item->setForeground(Qt::blue); ui->tableWidget->setItem(row,2,item); }