【问题标题】:Paradimatic signal for when a user selects a row用户选择行时的范式信号
【发布时间】:2014-01-22 04:03:20
【问题描述】:

我有一个 QTableView,它代表一个由行和几列组成的模型,例如 x、y、z 等坐标。这些行是整个元素,我想在每次用户选择一个选项时触发一个信号。我设想一些图形对象会根据所选行发生变化。

我目前的尝试是做类似的事情

ui.tlbView->setSelectionMode(QAbstractItemView::SelectionMode::SingleSelection);
ui.tlbView->setSelectionBehavior(QAbstractItemView::SelectionBehavior::SelectRows);
connect(ui.tlbView,&QTableView::clicked ,this,&FancyWidget::rowSelected);

这有时有效,但有时会失败。例如,在选择更改时单击垂直标题不会注册。这很糟糕,因为我想要一个在每次选择更改时触发的信号。

这让我觉得捕捉点击信号是一种黑客行为,并且考虑到小部件正确识别它已被选中,即使我的点击信号未被调用也是如此。我试图弄清楚如何 1:1 匹配小部件的选择状态。

【问题讨论】:

    标签: c++ qt qt5


    【解决方案1】:

    要获得有关选择更改的通知,请查看QItemSelectionModel。 您可以通过selectionModel() 访问表格视图的选择模型。在您的情况下,QItemSelectionModel::selectionChanged() 应该是您所需要的。

    connect(ui.tlbView->selectionModel(), &QItemSelectionModel::selectionChanged, 
            this, &FancyWidget::selectionChanged);
    

    【讨论】:

      猜你喜欢
      • 2015-06-06
      • 1970-01-01
      • 2011-01-04
      • 1970-01-01
      • 2013-01-20
      • 2011-05-04
      • 1970-01-01
      • 2013-04-09
      • 1970-01-01
      相关资源
      最近更新 更多