在我的QMainWindow
构造函数中,我读了一个数据库并用QListWidget
填充了这些项目。显然没有选择项目所以我必须自己做。我还有一个插槽,当我点击列表中的项目时,我会调用该插槽。
我尝试了setCurrentRow( const int )
,但如果我这样做,则不会调用广告位。我见过函数setCurrentIndex(const QModelIndex&)但我不熟悉QModelIndex。
如何告诉我的QListWidget选择第一项并拨打on_list_clicked(const QModelIndex& index)
位?
编辑:
此外,我不能使用任何其他插槽而不是点击,因为当我从列表中删除某个索引时,currentRowChanged(int)
和itemSelectionChanged()
都会导致程序崩溃。
所以我需要在列表上点击一下......
答案 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;
}