qt — QListWidget выбирает первый элемент

В моем QMainWindow Конструктор Я читаю базу данных и заполняю QListWidget с предметами. Видимо, не выбрано ни одного элемента, поэтому я должен сделать это самостоятельно. У меня также есть слот, который будет вызываться, когда я щелчок на элемент в списке.

Я старался setCurrentRow( const int ) но если я сделаю это, слот не будет вызван. Я видел функцию setCurrentIndex (const QModelIndex & ) но я не знаком с QModelIndex.

Как мне сказать моему QListWidget выбрать первый элемент и вызвать on_list_clicked(const QModelIndex& index) слот?

Редактировать:
Кроме того, я не могу использовать любой другой слот, кроме щелкнул, потому что currentRowChanged(int) а также itemSelectionChanged() и то и другое приводит к сбою моей программы при удалении определенного индекса из списка.

Так что как-то мне нужно выполнить клик по списку …

1

Решение

призвание 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;
}
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]