QTableWidget复选框获取状态和位置 [英] QTableWidget Checkbox get state and location

查看:308
本文介绍了QTableWidget复选框获取状态和位置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何获取所有复选框的状态并获取已选中的行和列?
Onclick PushButton函数。

How to get state of all checkbox and get row and column of checked? Onclick PushButton function.

    QTableWidget *t = ui->tableWidget;
    t->setRowCount(2);
    t->setColumnCount(2);

    QStringList tableHeader;
    tableHeader<<"item01"<<"item02";
    t->setHorizontalHeaderLabels(tableHeader);

    for (int i = 0; i < t->rowCount(); i++) {
        for (int j = 0; j < t->columnCount(); j++) {
            QWidget *pWidget = new QWidget();
            QHBoxLayout *pLayout = new QHBoxLayout(pWidget);
            QCheckBox *pCheckBox = new QCheckBox();
            pLayout->setAlignment(Qt::AlignCenter);
            pLayout->setContentsMargins(0,0,0,0);
            pLayout->addWidget(pCheckBox);
            pWidget->setLayout(pLayout);
            t->setCellWidget(i, j, pWidget);
        }
    }

当我单击按钮时,我需要获取所有内容选定元素,每个元素具有行,列。

And when I clicked the button, I need get all selected elements with rows, columns of each.

void Widget::on_pushButton_clicked()
{

    // Code here    

    // For example: Selected ["item01", 2]
}


推荐答案

我只是遍历所有单元小部件:

I simply iterate over all cell widgets:

for (int i = 0; i < t->rowCount(); i++) {
    for (int j = 0; j < t->columnCount(); j++) {
        QWidget *pWidget = t->cellWidget(i, j);
        QCheckBox *checkbox = pWidget->findChild<QCheckBox *>();
        if (checkbox && checkbox->isChecked())
            qDebug() << t->horizontalHeaderItem(j)->text() << i;
    }
}

这篇关于QTableWidget复选框获取状态和位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆