Название: Вопрос об активности элементов списка (StringList). Отправлено: Dragon от Май 21, 2010, 11:54 Есть список QStringList (data). Есть модель (model), в которую он выводится.
Для того чтобы по клику на элементе списка происходило какое-либо действие (открывалось окно, открывался файл, происходил поиск по значению элемента в файле и т.д.) нужно создавать класс-потомок от списка или есть какие-то готовые решения? Название: Re: Вопрос об активности элементов списка (StringList). Отправлено: Авварон от Май 21, 2010, 12:02 ловить сигнал clicked
Название: Re: Вопрос об активности элементов списка (StringList). Отправлено: Dragon от Май 21, 2010, 12:17 Вот к примеру:
Код
Чтобы вызвать действие в таком случае, то нужно: Код
В QModelIndex содержится номер элемента списка? И соответственно в слоте нужно играться с этим номером чтобы происходили действия различной сложности? Название: Re: Вопрос об активности элементов списка (StringList). Отправлено: kibsoft от Май 21, 2010, 12:39 QModelIndex будет содержать строку и столбец вызванного элемента. row(), column(). Дальше делаете, все что захотите. Чтобы получить данные этого элемента есть функция data(role), по умолчанию Qt::DisplayRole, т.е. показ данных.
Название: Re: Вопрос об активности элементов списка (StringList). Отправлено: Dragon от Май 21, 2010, 13:31 Что я примерно хочу сделать. Есть список слов / предложений (огромный список - 100, 1000, 10000 элементов... не имеет нзачения), которые хранятся, скажем в txt файле (может даже проще в базу данных поместить это все... этот момент я еще не обдумывал). По нажатию на какое-либо слово/предложение выводится список других слов (в эту же модель, или возможно в новом окне), которые относятся к этому элементу. Можно провести аналогию с диалогами в компьютерных играх. И я хочу выводить в это же окно результаты.
Правильно ли я понимаю, что для решения данной задачи будет использваться данный слот? Т.к. это список, то в QModelIndex будут передаваться значения: column = 1, row = номер_слова/предложения. А для того чтобы найти соответствие (данные, относящиеся к тому или иному элементу (слову)) нужно использовать роли? Название: Re: Вопрос об активности элементов списка (StringList). Отправлено: kibsoft от Май 21, 2010, 14:53 Dragon, почитай мануал о Model/View.
Цитировать в эту же модель тогда в тот view, в котором был кликнут элемент будут выведены новые данные.Нужно создать отдельную модель для этого случая. Либо сделать деревом(но наверное в твоем случае это не подойдет). Цитировать нужно использовать роли? Цитировать The roles are used by the view to indicate to the model which type of data it needs. - ассистентРоли тут не при чем. Откуда ты связанные слова брать будешь? Для этого случая я бы юзал БД. SQLITE например можно. |