importtemplate.cpp 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. #include "importtemplate.h"
  2. #include "ui_importtemplate.h"
  3. #include <QDebug>
  4. #include <QPoint>
  5. #include <QTableWidgetItem>
  6. #include "common/warning/warning.h"
  7. ImportTemplate::ImportTemplate(QStringList& tabList,QWidget *parent) :
  8. QDialog(parent),
  9. ui(new Ui::ImportTemplate)
  10. {
  11. ui->setupUi(this);
  12. /* 设置隐藏边框 */
  13. this->setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint);
  14. /* 设置底层样式表 */
  15. this->setAttribute(Qt::WA_TranslucentBackground);
  16. m_templateName.clear();
  17. /* 设置列数,列宽、列高、不可编辑、选择一行 */
  18. ui->tableWidget->setColumnCount(3);
  19. ui->tableWidget->setColumnWidth(0,22);
  20. ui->tableWidget->setColumnWidth(1,256);
  21. ui->tableWidget->setColumnWidth(2,76);
  22. ui->tableWidget->verticalHeader()->setDefaultSectionSize(48); //设置行高
  23. ui->tableWidget->setEditTriggers(QTableWidget::NoEditTriggers); //设置不可编辑
  24. ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); //设置选中一行
  25. ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); //设置只能选中一行
  26. ui->tableWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); //隐藏竖滚动条
  27. ui->tableWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); //隐藏横滚动条
  28. ui->tableWidget->setShowGrid(false); //隐藏网格线
  29. ui->tableWidget->verticalHeader()->setVisible(false); //隐藏行号
  30. ui->tableWidget->horizontalHeader()->setVisible(false); //隐藏列表头
  31. ui->tableWidget->setFocusPolicy(Qt::NoFocus); //设置不显示选中后的虚线
  32. // ui->tableWidget->setSortingEnabled(true); //开启排序功能
  33. /* 设置行选中后的样式 */
  34. ui->tableWidget->setStyleSheet(R"(
  35. QTableWidget::item:selected{
  36. background: rgba(231,236,255,0.5);
  37. })");
  38. ui->label_warning->hide();
  39. connect(ui->pBtn_close,SIGNAL(clicked()),this,SLOT(close()));
  40. connect(ui->pBtn_cancel,SIGNAL(clicked()),this,SLOT(close()));
  41. connect(ui->pBtn_ok,SIGNAL(clicked()),this,SLOT(do_ok()));
  42. connect(ui->tableWidget,SIGNAL(cellClicked(int,int)),this,SLOT(do_seletctRow(int,int)));
  43. /* 先设置表格的列数 */
  44. ui->tableWidget->setRowCount(tabList.count());
  45. for(int i = 0;i < tabList.count();i++)
  46. {
  47. createRow(i,i+1,tabList.at(i));
  48. }
  49. }
  50. ImportTemplate::~ImportTemplate()
  51. {
  52. delete ui;
  53. }
  54. void ImportTemplate::do_ok()
  55. {
  56. ui->label_warning->hide();
  57. if(m_templateName.isEmpty())
  58. {
  59. ui->label_warning->setText("请选择模版");
  60. ui->label_warning->show();
  61. return;
  62. }
  63. emit signal_templateName(m_templateName);
  64. this->close();
  65. }
  66. /* 选中一行 */
  67. void ImportTemplate::do_seletctRow(int row, int col)
  68. {
  69. if(col == 2)
  70. {
  71. /* 弹出框提示确定要删除 */
  72. Warning w(this);
  73. w.setText("是否删除模板?");
  74. bool flag = false;
  75. connect(&w,&Warning::signal_ok,this,[&](){
  76. flag = true;
  77. });
  78. // std::shared_ptr<LHMaskWidget> mask = std::make_shared<LHMaskWidget>();
  79. // mask->SetMainWidget(this); /* 设置主窗口(被遮盖的窗口) */
  80. // mask->SetTrigWidget(&w); /* 设置触发的窗口 */
  81. // mask->SetOpacity(float(0.4));
  82. w.exec();
  83. if(!flag)
  84. {
  85. return;
  86. }
  87. emit signal_deleteTemplate(ui->tableWidget->item(row,1)->text());
  88. ui->tableWidget->removeRow(row);
  89. /* 对模版重新编号 */
  90. for(int i = 0 ;i < ui->tableWidget->rowCount();i++)
  91. {
  92. ui->tableWidget->item(i,0)->setData(Qt::DisplayRole,i+1);
  93. }
  94. }else
  95. {
  96. m_templateName = ui->tableWidget->item(row,1)->text();
  97. }
  98. }
  99. /* 创建一行数据 */
  100. void ImportTemplate::createRow(int row,int num,const QString &text)
  101. {
  102. QTableWidgetItem* item = new QTableWidgetItem;
  103. item->setData(Qt::DisplayRole,num);
  104. item->setTextAlignment(Qt::AlignVCenter | Qt::AlignHCenter);
  105. ui->tableWidget->setItem(row,0,item);
  106. item = new QTableWidgetItem(text);
  107. item->setTextAlignment(Qt::AlignVCenter | Qt::AlignLeft);
  108. ui->tableWidget->setItem(row,1,item);
  109. item = new QTableWidgetItem("删除");
  110. item->setTextAlignment(Qt::AlignVCenter | Qt::AlignHCenter);
  111. item->setForeground(Qt::blue);
  112. ui->tableWidget->setItem(row,2,item);
  113. }