在 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" );
}
我不确定标题是否正确,但情况是这样的:
当一行被选中并且包含 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" );
}