QTableView鼠标滑过某一行时该item所在行的背景颜色设置方法

1、效果图

2、代码调用示例

    CUIRowHoverTableWidget* tableWidget = new CUIRowHoverTableWidget;
    tableWidget->SetHoverRowEnabled(true);
    tableWidget->SetHoveredRowForeground(Qt::black);
    tableWidget->SetHoveredRowBackground(Qt::red);
    tableWidget->SetHoveredRowBorderColor(Qt::green);
    tableWidget->horizontalHeader()->setStretchLastSection(true);
    tableWidget->setSelectionBehavior(QTableView::SelectRows);
    tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
    tableWidget->setSelectionMode(QAbstractItemView::SingleSelection);
    tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
    tableWidget->setShowGrid(false);
    tableWidget->horizontalHeader()->setVisible(false);
    tableWidget->verticalHeader()->setVisible(false);
    tableWidget->setFocusPolicy(Qt::NoFocus);

    tableWidget->setRowCount(5); // 例如,5行
    tableWidget->setColumnCount(5); // 例如,3列
    tableWidget->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Fixed);
    tableWidget->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Stretch);
    //tableWidget->setColumnHidden(2, true);
    tableWidget->setColumnWidth(0, 16);

    tableWidget->resize(400, 400);
    tableWidget->show();

       for (int row = 0; row < 5; ++row)
       {
           for (int col = 0; col < 3; ++col)
           {
               // 创建自定义 Widget
               QWidget *widget = new QWidget();
               QHBoxLayout *layout = new QHBoxLayout(widget);
               QLabel *label = new QLabel(QString("第%1行第%2列").arg(row).arg(col));
               QPushButton *button = new QPushButton("Button");

               // 若是自定义的窗体,需要设置穿透功能
               widget->setStyleSheet("QWidget{outline: none; background:transparent;}");
               widget->setAttribute(Qt::WA_TransparentForMouseEvents, true);

               layout->addWidget(label);
               layout->addWidget(button);
               tableWidget->setCellWidget(row, col, widget);
           }
       }

3、下载

下载

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值