В моем QMainWindow
Конструктор Я читаю базу данных и заполняю QListWidget
с предметами. Видимо, не выбрано ни одного элемента, поэтому я должен сделать это самостоятельно. У меня также есть слот, который будет вызываться, когда я щелчок на элемент в списке.
Я старался setCurrentRow( const int )
но если я сделаю это, слот не будет вызван. Я видел функцию setCurrentIndex (const QModelIndex & ) но я не знаком с 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;
}
Других решений пока нет …