Название: QItemSelectionModel::setCurrentIndex не работает при открытии окна Отправлено: evgeniy от Февраль 17, 2014, 01:26 Код: void TreeModel::selectIndex(QModelIndex ix) { Эта функция работает нормально при удалении/вставке узлов, но когда я пытаюсь (в функции QMainWindow::showEvent) сделать текущим сохранённый узел из предыдущей сессии результат такой: Код: name1 QVariant(QString, "Highlight elements") Код: tree->selectionModel()->setCurrentIndex(ix, QItemSelectionModel::SelectCurrent); Спасибо огромное заранее! Название: Re: QItemSelectionModel::setCurrentIndex не работает при открытии окна Отправлено: Old от Февраль 17, 2014, 04:19 А вы смотрели, что возвращает:
tree->selectionModel() в showEvent? Возможно, она еще не создана? Название: Re: QItemSelectionModel::setCurrentIndex не работает при открытии окна Отправлено: kambala от Февраль 17, 2014, 14:48 еще можно попробовать вызывать метод по нулевому таймеру вместо showEvent
Название: Re: QItemSelectionModel::setCurrentIndex не работает при открытии окна Отправлено: evgeniy от Февраль 18, 2014, 18:07 А вы смотрели, что возвращает: tree->selectionModel()->clear() срабатывает. selectionModel я создаю отдельно до создания mainWindow.tree->selectionModel() в showEvent? Возможно, она еще не создана? еще можно попробовать вызывать метод по нулевому таймеру вместо showEvent Да, похоже это единственный оставшийся выход. Как это сделать?P. S. Вабще канкретный глюк - я в шоке!!! Название: Re: QItemSelectionModel::setCurrentIndex не работает при открытии окна Отправлено: kambala от Февраль 18, 2014, 19:59 QTimer::singleShot(0, this, yourSlot())
Название: Re: QItemSelectionModel::setCurrentIndex не работает при открытии окна Отправлено: evgeniy от Февраль 20, 2014, 13:24 QTimer::singleShot(0, this, yourSlot()) Спасибо огромное, kambala!Только этот код сработал: Код: void MainWindow::showEvent(QShowEvent *event) { Кстати, на qtcentre.org и stackoverflow.com ничем не помогли. Название: Re: QItemSelectionModel::setCurrentIndex не работает при открытии окна Отправлено: GreatSnake от Февраль 20, 2014, 14:38 selectionModel я создаю отдельно до создания mainWindow. А чем не устроила встроенная?Название: Re: QItemSelectionModel::setCurrentIndex не работает при открытии окна Отправлено: kambala от Февраль 20, 2014, 15:17 по идее таймер можно запускать и из конструктора, не обязательно из showEvent
Название: Re: QItemSelectionModel::setCurrentIndex не работает при открытии окна Отправлено: evgeniy от Февраль 20, 2014, 20:28 А чем не устроила встроенная? 1. Я пробовал и со встроенной.2. У меня планируется один selectionModel на QTreeView и QTableView. по идее таймер можно запускать и из конструктора, не обязательно из showEvent Согласен, так и сделал. |