在QTableWidget中选择一行,条件是禁用pushButton

时间:2018-01-29 05:14:29

标签: c++ qt qtablewidget


我不确定标题是否正确,但情况如下:

id 1


id 2


id 3

选择行并包含FULL_MEMBER的应用程序状态时, 启用了pushButton,否则它被禁用。

1 个答案:

答案 0 :(得分:0)

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

在你的小部件中有这样的插槽:

private slots:
    void tableSelectionChanged();

在小部件构造函数中,将其连接到表小部件信号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" );
}