Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.07.2013, 11:45   #1
Smart
Пользователь
 
Регистрация: 05.05.2008
Сообщений: 19
По умолчанию Select iteam's childrens QTreeView

Здравствуйте. Не могу понять, как решить задачу выделения item’ов, которые являются потомками других item’ов. То есть выделение потомков в дереве QTreeView. Я сделал класс-наследник, QTreeView. Если в конструкторе использовать следующий код:
Код:
this->setSelectionMode(QAbstractItemView::MultiSelection)
,то с помощью кликов можно выделить несколько главных item’ов. При открытии их потомков, эти потомки не выделяются при клике. Использую метод для просмотра выделенных item’ов таже беда:
this->selectionModel()->selectedIndexes()
при кликах на несколько главных item’ов, список выделенных формируется, при кликах на их потомки список равен 0.
Пытался выделение осуществить методами, которые описаны в интернете:
Код:
void CTreeCompareView::mousePressEvent(QMouseEvent *event)
{
    //QModelIndex index = indexAt(event->pos());
    if(event->button()==Qt::LeftButton)
	{
		//int testIndex=currentIndex().row();
        StartPos=event->pos();
		QModelIndex ind=indexAt(event->pos());
		int a=8;
	}
	QTreeView::mousePressEvent(event);
    //if(index.isValid())
        //clearSelection();
}

void CTreeCompareView::mouseMoveEvent(QMouseEvent* event)
{
    if(event->buttons() == Qt::LeftButton)
	{
		//selectionModel()->setCurrentIndex(indexAt(event->pos()),QItemSelectionModel::SelectCurrent);
		selectionModel()->select(indexAt(event->pos()),QItemSelectionModel::Select);
		//setCursor(QCursor(Qt::ClosedHandCursor));
        //QCursor::setPos((event->pos()-StartPos));
	}
    QTreeView::mouseMoveEvent(event);

}

void CTreeCompareView::mouseReleaseEvent(QMouseEvent* event)
{
//	if( event->buttons().testFlag(Qt::LeftButton) )
    QTreeView::mouseReleaseEvent(event);
}
Эффект тоже отрицательный, что делать не знаю, выделить потомков главных item'ов не могу, помогите пожалуйста.
Smart вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JSP + HQL: как в блоке <select></select> вызвать метод из DAO? Blondy Java для Web (EE, Servlet, JSP, Tomcat, Spring MVC) 4 01.06.2013 15:54
mysql_query("select purse ?????select purse??? wmjaqa PHP 3 24.07.2012 06:45
В зависимости от выбора в Select изменить значения другого Select Tayfun HTML и CSS 3 18.08.2011 00:05
Select t1.N,t1.FIO,(select t2.acc from t2 where t2.type=1) from t1,t2 mavlon_m SQL, базы данных 2 17.09.2009 15:28
Передача значения в <select></select> kkkggg Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 06.09.2007 00:26