#include "formmultiheads.h" #include "ui_formmultiheads.h" #include #include #include "newheaddialog.h" #include "formhead.h" extern int g_iRows; extern int g_iCols; extern int g_iColsWidth; extern int g_iRowsHight; extern int g_iFixedWidth; extern int g_iFixedHeight; FormMultiHeads::FormMultiHeads(QWidget *parent) : QWidget(parent), ui(new Ui::FormMultiHeads) { ui->setupUi(this); //------------------------------------- //ui->tableWidget->hide(); //隐藏网格线 ui->tableWidget->setShowGrid(false); //设置样式表,不显示竖直边框 ui->tableWidget->setStyleSheet( "QTableView::item {border-left: 0px solid black;} \ QTableView::item:selected {border-left: 0px solid black;}\ QTableView::item {border-right: 0px solid black;} \ QTableView::item:selected {border-right: 0px solid black;}"); // //ui->tableWidget->verticalHeader()->hide(); //行 //ui->tableWidget->horizontalHeader()->hide(); //列 ui->tableWidget->verticalHeader()->setFixedWidth(10);//标题栏宽度 ui->tableWidget->horizontalHeader()->setFixedHeight(10);//标题栏高度 ui->tableWidget->setColumnCount(1); //动态设置列数 ui->tableWidget->horizontalHeader()->setStretchLastSection(true);//最后一列铺满最后 //标题 QTableWidgetItem *headerItem = new QTableWidgetItem(""); ui->tableWidget->setHorizontalHeaderItem(0, headerItem); //我们让一列也可以滑动 ui->tableWidget->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); ui->tableWidget->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); // 设置右键菜单策略 ui->tableWidget->setContextMenuPolicy(Qt::CustomContextMenu); connect(ui->tableWidget, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(slotContextMenu(QPoint))); // 在窗口构造函数中 //ui->tableWidget->installEventFilter(this); } FormMultiHeads::~FormMultiHeads() { delete ui; } void FormMultiHeads::slotContextMenu(QPoint pos) { QMenu menu(ui->tableWidget); QAction *newAction = menu.addAction("新建图头"); // 弹出菜单 QAction *selectedAction = menu.exec(ui->tableWidget->mapToGlobal(pos)); if (selectedAction == newAction) { NewHeadDialog *dlg = new NewHeadDialog(this); // dlg->setAttribute(Qt::WA_DeleteOnClose);//关闭时,自动删除窗口对象 int result = dlg->exec();//模态对话框 if (result == QDialog::Accepted) { // 处理用户点击了确定按钮的逻辑 qDebug() << "Accepted="; int rowcount = ui->tableWidget->rowCount(); //总行数 //增加1行 ui->tableWidget->setRowCount(rowcount+1); //行标题 QTableWidgetItem *headerItem = new QTableWidgetItem(""); ui->tableWidget->setVerticalHeaderItem(rowcount, headerItem); int tempWidth = g_iCols*g_iColsWidth+g_iFixedWidth+15; int tempHight = g_iRows*g_iRowsHight+g_iFixedHeight+15; //设置行高度 ui->tableWidget->setRowHeight(rowcount, tempHight); if(rowcount==0) { //设置列宽 ui->tableWidget->setColumnWidth(0, tempWidth); } else { int iWidth=ui->tableWidget->columnWidth(0); if(iWidthtableWidget->setColumnWidth(0, tempWidth); } } // FormHead *widgetHead = new FormHead(this, 1); widgetHead->Init(g_iRows, g_iCols); ui->tableWidget->setCellWidget(rowcount, 0, widgetHead); } else if (result == QDialog::Rejected) { // 处理用户点击了取消按钮的逻辑 qDebug() << "Rejected="; } else { // 处理其他情况的逻辑 qDebug() << "other="; } } // if(ui->tableWidget->rowCount()==0 && ui->tableWidget->rowCount()==0) // { // QMenu menu(ui->tableWidget); // QAction *newAction = menu.addAction("新建图头"); // // 弹出菜单 // QAction *selectedAction = menu.exec(ui->tableWidget->mapToGlobal(pos)); // if (selectedAction == newAction) { // NewHeadDialog *dlg = new NewHeadDialog(this); // // // dlg->setAttribute(Qt::WA_DeleteOnClose);//关闭时,自动删除窗口对象 // int result = dlg->exec();//模态对话框 // if (result == QDialog::Accepted) { // // 处理用户点击了确定按钮的逻辑 // qDebug() << "Accepted="; // // // ui->tableWidget->clear(); // // // ui->tableWidget->setColumnCount(g_iCols); // ui->tableWidget->setRowCount(g_iRows); //动态设置行数 // for(int i=0; itableWidget->setItem(i, j, item); // } // } // } // else if (result == QDialog::Rejected) { // // 处理用户点击了取消按钮的逻辑 // qDebug() << "Rejected="; // } // else { // // 处理其他情况的逻辑 // qDebug() << "other="; // } // } // } // else // { // QMenu menu(ui->tableWidget); // QAction *mergeAction = menu.addAction("合并表格"); // QAction *refreshAction = menu.addAction("拆分表格"); // QAction *deleteAction = menu.addAction("删除行"); // QAction *addAction = menu.addAction("添加行"); // // 弹出菜单 // QAction *selectedAction = menu.exec(ui->tableWidget->mapToGlobal(pos)); // if (selectedAction == mergeAction) { // qDebug() << "合并表格"; // slotMerge(); // } else if (selectedAction == deleteAction) { // //删除1行 // int row = ui->tableWidget->currentRow(); // ui->tableWidget->removeRow(row); // } else if (selectedAction == refreshAction) { // qDebug() << "拆分表格"; // slotSplit(); // } // } }