Russian Qt Forum
Апрель 20, 2024, 11:01 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: сигнал на выделение элементов treeView  (Прочитано 4770 раз)
nvek
Гость
« : Март 30, 2017, 12:57 »

всяко разно уже писал
connect(treeView->setSelectionModel(_selection), &QItemSelection::select, &MainForm::treeSelectionChanged);

как получить выделенный элемент во вьюшке?
можно только один выделенный

поставил на слот точку останова и ничего не происходит
connect(_selection, SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)), this, SLOT(treeSelectionChanged(const QItemSelection&, const QItemSelection&)));

« Последнее редактирование: Март 30, 2017, 13:09 от nvek » Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #1 : Март 30, 2017, 13:42 »

Кажется вы не совсем то соединяете.
Надо соединять QItemSelectionModel, а не QItemSelection
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #2 : Март 30, 2017, 13:44 »

QAbstractItemView::setSelectionModel вообще void возвращает, первый коннект, вроде как и скомпилироваться не должен.
Записан
vic57
Чайник
*
Offline Offline

Сообщений: 90


Просмотр профиля
« Ответ #3 : Март 31, 2017, 04:15 »

Код:
        model = new Model(this,db);
        qDebug() << view->selectionModel();
        view->setModel(model);
        qDebug() << view->selectionModel();
        /*connect(SIGNAL(view->selectionModel()->selectionChanged()),SLOT(...));*/
выхлоп
Код:
QObject(0x0)  
QItemSelectionModel(0x1010f5850)
« Последнее редактирование: Март 31, 2017, 04:21 от vic57 » Записан
nvek
Гость
« Ответ #4 : Апрель 03, 2017, 09:59 »

я вроде то что надо соединяю
Код:
treeView = new QTreeView();
  treeView->header()->hide();
  treeView->setModel(treeCtrl);
  QItemSelectionModel* _select;
  _select = new QItemSelectionModel(treeCtrl);
  treeView->setSelectionMode(QAbstractItemView::ExtendedSelection);
  treeView->setContextMenuPolicy(Qt::CustomContextMenu);

  connect(treeView, &QWidget::customContextMenuRequested, this, &MainForm::treeContextMenu);
  connect(_select, &QItemSelectionModel::selectionChanged,
    this, &MainForm::treeSelectionChanged);


и мой слот:
Код:
void MainForm::treeSelectionChanged(const QItemSelection & selected, const QItemSelection & deselected)
{
  qDebug() << "selectionChanged";
  QModelIndex index = selected.indexes().at(0);

  propCtrl = new StatPropCtrl(&index);
}
не робит Грустный
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #5 : Апрель 03, 2017, 10:05 »

А зачем создавать QItemSelectionModel? Она уже есть у модели, сделайте так:

Код
C++ (Qt)
connect(treeView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &MainForm::treeSelectionChanged);
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.14 секунд. Запросов: 22.