// 行交替颜色
QPalette palette;
palette.setColor(QPalette::Base, QColor(255, 255, 255));
palette.setColor(QPalette::AlternateBase, QColor(233, 245, 252));
ui->tableWidget->setPalette(palette);
ui->tableWidget->setAlternatingRowColors(true);
// 编辑、选择模式、选择行为
ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection);
ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
// 最后一列伸缩, colId列适应内容大小
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
ui->tableWidget->horizontalHeader()->setSectionResizeMode(colId, QHeaderView::ResizeToContents);
// 大小适应内容
ui->tableWidget->resizeRowsToContents();
ui->tableWidget->resizeColumnsToContents();
// 表头样式
ui->tableWidget->horizontalHeader()->setStyleSheet("QHeaderView::section{background:rgb(255,255,255);}");
// 用户右键菜单
ui->tableWidget->setContextMenuPolicy(Qt::CustomContextMenu);
// 信号 QTableWidget::customContextMenuRequested
// 菜单位置 menu.exec(ui.tableWidget->mapToGlobal(p))
// 单元格使用 QRadioButton 并居中文本
QRadioButton* rb = new QRadioButton(ui.tableWidget);
rb->setText(u8"开关");
QHBoxLayout* layout = new QHBoxLayout();
QWidget* widget = new QWidget(ui.tableWidget);
layout->addWidget(rb);
layout->setMargin(0);
layout->setAlignment(Qt::AlignCenter);
widget->setLayout(layout);
ui.tableWidget->setCellWidget(0, 0, widget);
// 设置选中后,高亮
ui.tableWidget->selectRow(rowId);
ui.tableWidget->setFocus(Qt::MouseFocusReason);
// 添加行 r:当前行数
ui.tableWidget->setRowCount(r + 1);