【问题标题】:Qt - Access a checkbox in a tableQt - 访问表格中的复选框
【发布时间】:2013-02-13 08:49:42
【问题描述】:

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

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);

这样做是否正确?如果是这样,我如何访问每一行的复选框?

【问题讨论】:

    标签: c++ qt qwidget qtablewidget qcheckbox


    【解决方案1】:

    我说的是 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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-13
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 2017-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多