在 QTableWidget 中选择一行以禁用 pushButton

Selecting a row in QTableWidget with conditions to disable pushButton


我不确定标题是否正确,但情况是这样的:







当一行被选中并且包含 FULL_MEMBER 的应用程序状态时, 一个按钮被启用,否则它被禁用。

每次选择更改时,您必须获取所选行第五列中的项目(单元格)的文本。

在您的小部件中有一个这样的插槽:

private slots:
    void tableSelectionChanged();

在小部件构造函数中,将其连接到 table 小部件信号 itemSelectionChanged:

connect(ui->tableWidget, SIGNAL(itemSelectionChanged()), this, SLOT(tableSelectionChanged()));

插槽定义是这样的:

//retrieve a list of all selected rows
QModelIndexList list = ui->tableWidget->selectionModel()->selectedRows();
if(list.size() > 0)
{
    //retrieve the index of the first (and only, maybe?) selected row
    int row = list[0].row();
    const int col = 4; //Application Status column id
    QTableWidgetItem * item = ui->tableWidget->item(row, col); //the item we want to inspect
    ui->pushButton->setEnabled( item->text() == "FULL_MEMBER" );
}