C ++ - QListWidget选择第一项

时间:2013-09-03 15:39:21

标签: c++ qt qlistwidget

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

我尝试了setCurrentRow( const int ),但如果我这样做,则不会调用广告位。我见过函数setCurrentIndex(const QModelIndex&)但我不熟悉QModelIndex。

如何告诉我的QListWidget选择第一项并拨打on_list_clicked(const QModelIndex& index)位?

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

所以我需要在列表上点击一下......

1 个答案:

答案 0 :(得分:4)

致电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;
}