gpt4 book ai didi

c++ - Qt - 访问表格中的复选框

转载 作者:行者123 更新时间:2023-11-28 07:46:07 26 4
gpt4 key购买 nike

我有一个表格,表格中每一行的第一列都有一个复选框。我需要这样做,这样我才能检测到选中了哪些复选框,并在按下按钮时删除这些行。

QWidget * chkWidget = new QWidget();
QHBoxLayout *center = new QHBoxLayout();
center->setAlignment( Qt::AlignCenter );
center->addWidget( new QCheckBox );
chkWidget->setLayout( center );
ui->data_table->setCellWidget(rowCount,0, chkWidget);

这样做对吗?如果是这样,我如何访问每一行的复选框?

最佳答案

我说的是 QTableWidget。您可以使用 QList。您将 QCheckBox 保存到这个 QList 中,并在有一些变化时使用它

也许你应该看看文档

这是一个解决方案。我现在无法运行它,所以请告诉我它是否有效。请验证行值。我不确定是否可能,删除最后一行时该行的值为 -1 ;)

#include "TestTableWidget.h"
#include "ui_TestTableWidget.h"

TestTableWidget::TestTableWidget(QWidget *parent) : QMainWindow(parent), ui(new Ui::TestTableWidget)
{
ui->setupUi(this);

tableWidget = new QTableWidget(this);
tableWidget->setColumnCount(1); // Just an example

ui->gridLayout->addWidget(tableWidget);

connect(tableWidget, SIGNAL(itemSelectionChanged()), this, SLOT(slotChange()));

for(int i = 1; i < 10; i++)
{
addRow("Row " + QString::number(i));
}
}

TestTableWidget::~TestTableWidget()
{
delete ui;
}

void TestTableWidget::addRow(QString text)
{
int row = tableWidget->rowCount();
qDebug() << "Current row count is " + QString::number(row);

// Add new one
QTableWidgetItem *item = new QTableWidgetItem(text);
tableWidget->insertRow(row);
tableWidget->setItem(row, 0, item);

// Add item to our list
}

void TestTableWidget::slotChange()
{
int row = tableWidget->currentRow();
qDebug() << "Change in table. Current row-index: " + QString::number(row);
// This value is zero-based, so you can use it in our list
}

关于c++ - Qt - 访问表格中的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14849611/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com