如何根据“Qtableview”中的选择禁用/启用按钮

时间:2017-11-23 10:10:40

标签: qt qtableview qpushbutton

我有一个QTableView和一个按钮。当从QTableView中选择行时,我想要启用按钮,如果未选择该行,则应禁用该行。任何人都可以告诉你如何做到这一点

1 个答案:

答案 0 :(得分:2)

使用表格选择模型处理选择变更信号

然后测试选择大小。

示例:

QItemSelectionModel *poSelectedFiles =
            m_poTableView->selectionModel();

connect(poSelectedFiles,    &QItemSelectionModel::selectionChanged,
        this,               &MainWindow::SlotSelectionChanged);


void MainWindow::SlotSelectionChanged(const QItemSelection & oSelected, const QItemSelection & oDeselected)
{    
    const int iSelectedItems  =
            m_poTableView->selectionModel()->selectedIndexes().size();

    bool bEnabled = (iSelectedItems > 0) ? true : false;
    // Enable button when row is selected.
    ui->poMyButton->setEnabled(bEnabled);
}