tableWidget右键添加、删除、清除表格,自定义表格样式。


一键添加、删除、情况表格,自定义表格样式。

运行效果 如果对您有用记得点赞哦)

在这里插入图片描述

设置行数列数

    /* 设置2列 */
    tableWidget->setColumnCount(2);
    /* 设置10行 */
    tableWidget->setRowCount(10);

设置单元格字体及对齐方式

/* 设置文本居中对齐 */
tableWidget->item(row,0)->setTextAlignment(Qt::AlignCenter);
tableWidget->item(row,1)->setTextAlignment(Qt::AlignCenter);
/* 获取原有字体设置 */
QFont font = tableWidget->item(row,0) ->font();
/* 设置为粗体 */
font.setBold(true);
/* 字体大小 */
font.setPointSize(12);
/* 字体颜色 */
tableWidget->item(row,0)->setTextColor(Qt::red);
/* 设置字体 */
tableWidget->item(row,0)->setFont(font);

设置选中背景色及选中方式

/* 设置选中背景色 */
tableWidget->setStyleSheet("selection-background-color:lightblue;");
/* 开启交替行背景色 */
tableWidget->setAlternatingRowColors(true);
/* 设置整行选中的方式 */
tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
/* 设置为可以选中多个目标,按ctrl键 */
tableWidget->setSelectionMode(QAbstractItemView::ExtendedSelection);

右键添加删除清空单元格

右键按钮及信号槽

 /* 打开右键菜单 */
    tableWidget->setContextMenuPolicy(Qt::CustomContextMenu);
    /* 添加按钮 */
    m_menu = new QMenu(this);
    m_actionAdd = new QAction("添加",m_menu);
    connect(m_actionAdd,&QAction::triggered,this,&MainWindow::slotAdd);
    /* 删除按钮 */
    m_actionDel = new QAction("删除",m_menu);
    connect(m_actionDel,&QAction::triggered,this,&MainWindow::slotDel);
    /* 清空按钮 */
    m_actionEmpty = new QAction("清空",m_menu);
    connect(m_actionEmpty,&QAction::triggered,this,&MainWindow::sloEmpty);
    /* 添加添加按钮 */
    m_menu->addAction(m_actionAdd);
    /* 添加删除按钮 */
    m_menu->addAction(m_actionDel);
    /* 添加清空按钮 */
    m_menu->addAction(m_actionEmpty);
    connect(tableWidget,&QTableWidget::customContextMenuRequested,this,&MainWindow::slotPopMenu);

相关槽函数


/* 添加单元格 */
void MainWindow::slotAdd()
{
    /* 获取选中行号 */
    int row = tableWidget->currentRow();
    /* 当没有任何选中目标时row返回值为-1 */
    /* 这是将在第一行添加 */
    if(row>=0)
    {
        /* 在选中行号位置添加新行 */
        tableWidget->insertRow(row);
        /* 添加内容 */
        tableWidget->setItem(row,0,new QTableWidgetItem("20"));
        tableWidget->setItem(row,1,new QTableWidgetItem("10"));
        /* 文字水平居中 */
        /* 如需字体格式参上 */
        tableWidget->item(row,0)->setTextAlignment(Qt::AlignCenter);
        tableWidget->item(row,1)->setTextAlignment(Qt::AlignCenter);
    }else{
        row = 0;
        /* 在选中行号位置添加新行 */
        tableWidget->insertRow(row);
        /* 添加内容 */
        tableWidget->setItem(row,0,new QTableWidgetItem("20"));
        tableWidget->setItem(row,1,new QTableWidgetItem("10"));
        /* 文字水平居中 */
        /* 如需字体格式参上 */
        tableWidget->item(row,0)->setTextAlignment(Qt::AlignCenter);
        tableWidget->item(row,1)->setTextAlignment(Qt::AlignCenter);
    }
}
/* 删除单元格 */
void MainWindow::slotDel()
{
    /* 获取总行数 */
    int row = tableWidget->currentRow();
    /* 当没有任何选中目标时row返回值为-1 */
    if(row>0)
        tableWidget->removeRow(row);
}
/* 清空单元格 */
void MainWindow::sloEmpty()
{
    /* 获取总行数 */
    int row = tableWidget->rowCount();
    for(;row>=0;row--)
         tableWidget->removeRow(row);
}
/* 右键弹窗位置 */
void MainWindow::slotPopMenu(const QPoint &pos)
{
    m_menu->exec(tableWidget->mapToGlobal(pos));
}

源码

源码链接

如果您觉得有用请点赞支持
您的点赞是我创作的动力源泉

下期讲解一键导入excel表格及一键保存excel文件

  • 4
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

点灯大神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值