C++-QListWidget选择第一项

C++ - QListWidget select first item

本文关键字:一项 选择 C++-QListWidget      更新时间:2023-10-16

在我的QMainWindow构造函数中,我读取了一个数据库,并用这些项填充了我的QListWidget。显然没有选择任何项目,所以我必须自己做。我还有一个插槽,当我单击列表中的项目时会调用它。

我尝试了setCurrentRow( const int ),但如果我这样做,插槽将不会被调用。我看过函数setCurrentIndex(constQModelIndex&),但我不熟悉QModelIndex。

如何告诉我的QListWidget选择第一个项目并调用on_list_clicked(const QModelIndex& index)插槽?

编辑:此外,除了单击之外,我不能使用任何其他插槽,因为当我从列表中删除某个索引时,currentRowChanged(int)itemSelectionChanged()都会使我的程序崩溃。

所以不知怎么的,我需要点击列表。。。

调用setCurrentRow()会发出信号currentRowChanged(),该信号接受int而不是QModelIndex

只需连接到该信号,而不是连接到itemSelectionChanged()

样本代码:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->listWidget->setCurrentRow(1);
}
void MainWindow::on_listWidget_currentRowChanged(int currentRow)
{
    qDebug() << currentRow;
}