我基本上得到了一个 QPushButton 和一个连接到 QStandardItemModel 的 QListView。
QPushButton 允许删除 QListView 中的选定项目。我试图仅在 QListView 中选择了至少一项时才启用 QPushButton,但我找不到正确的信号。
我基本上得到了一个 QPushButton 和一个连接到 QStandardItemModel 的 QListView。
QPushButton 允许删除 QListView 中的选定项目。我试图仅在 QListView 中选择了至少一项时才启用 QPushButton,但我找不到正确的信号。
正确的信号是QItemSelectionModel::selectionChanged。QItemSelectionModel
对象可以使用view->selectionModel()
.
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));
}