1

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

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

4

2 回答 2

1

正确的信号是QItemSelectionModel::selectionChangedQItemSelectionModel对象可以使用view->selectionModel().

于 2013-07-02T06:50:20.230 回答
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));
}
于 2013-07-01T21:59:29.767 回答