importtemplate.cpp 4.4 KB

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