在QListView中选择项目时启用QPushButton

时间:2013-07-01 21:53:25

标签: qt

我基本上有一个QPushButton和一个连接到QStandardItemModel的QListView。

QPushButton允许删除QListView中的选定项目。如果在QListView中至少选择了一个项目,我试图仅启用QPushButton,但我找不到正确的信号。

2 个答案:

答案 0 :(得分:1)

正确的信号是QItemSelectionModel::selectionChanged。可以使用QItemSelectionModel获取view->selectionModel()个对象。

答案 1 :(得分:0)

clicked(QModleIndex)看起来可能是一个不错的起点 - 如果您设置一个插槽来接收该通知,您应该能够启用您的按钮。

使用QtCreator / Designer:

void MainWindow::on_listWidget_clicked(const QModelIndex &index)
{
  ui->pushButton->setEnabled(true);
}

如果没有QtCreator,连接会分解成类似这样的东西(Qt4样式):

MainWindow::MainWindow(QWidget *parent) :
  QMainWindow(parent)
{
  QListWidget* listWidget = new QListWidget();

  // ... setup ui stuff, etc ...

  connect(listWidget, SIGNAL(clicked(QModelIndex)), 
          this, SLOT(on_listWidget_clicked(QModelIndex));
}