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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Айтемы в таблице не выделяються QT4.3.0  (Прочитано 6256 раз)
XandoX
Гость
« : Сентябрь 24, 2007, 16:51 »

Собственно сабж?

для таблицы(QTableView) поставил

   m_main_table->setSelectionMode(QAbstractItemView::ExtendedSelection);
   m_main_table->setSelectionBehavior(QAbstractItemView::SelectItems);
для модели
флаги
        return Qt::ItemIsEditable|Qt::ItemIsSelectable|Qt::ItemIsEnabled;

что еще нужно, может с делегатом что сделать, но у него про выделения ничего не нашел, к стати, наверное, в связи с тем что нечего не выделяется, делегат не отрабатывет (делегат для редактирования айтемов)

не выделяеться следующим образом, мышкай клацешь, покак держишь, вроде выделено, отпускаешь выделение проподает, вот такая вот фигня, как бороться?

ps убрал теги кода, а то в нем нифега не видно
« Последнее редактирование: Сентябрь 24, 2007, 16:54 от XandoX » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Сентябрь 24, 2007, 18:06 »

Делаешь так
qtvReferences=new QTableView(this);
qtvReferences->setSelectionBehavior(QAbstractItemView::SelectRows);//Замени на нужное
И больше ничего. Зачем модель трогать?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
XandoX
Гость
« Ответ #2 : Сентябрь 25, 2007, 08:59 »

некатит, если SelectRows ставишь, строка подмышкой выделяеться, но после отпускания кнопки тудже сбрасываеться,
это может быть из-за, того что таблица обновляеться 10 раз в секунду?
Записан
Tamara
Гость
« Ответ #3 : Сентябрь 25, 2007, 11:09 »

это может быть из-за, того что таблица обновляеться 10 раз в секунду?
А она как обновляется-то? если reset-ится по 10 раз в секунду, то всяко из-за этого Подмигивающий
А вообще, недостаточно данных для ответа на поставленный вопрос: из-за вызова вышеприведенных функций и возврата флагов проблем быть не должно, ошибка где-то в другом месте, но без кода можно только гадать на кофейной гуще, где именно.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #4 : Сентябрь 25, 2007, 11:34 »

Перед каждым обновлением сохраняй позицию и после восстанавливай.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
XandoX
Гость
« Ответ #5 : Сентябрь 25, 2007, 12:29 »

если reset-ится по 10 раз в секунду, то всяко из-за этого Подмигивающий

ага из-за этого, я поменял, теперь выделение работает.

тока вот редактироваться все равно не хоче, это то же из-за этого? если да, то как помимо сохранения текущего индекса и потом его восстановления с этим бороться?
Записан
Tonal
Гость
« Ответ #6 : Сентябрь 25, 2007, 12:49 »

И редактирование из-за этого. ;-)
Выходов можно несколько придумать, например:
*) Редактировать в отдельном диалоге.
*) Запрещать рефрешь пока редактируешь.

Кроме того, можно
*) Рефрешить не весь View, а только те строки данные в которых реально изменились.
*) Рефрешить только если пользователь ничего не делает.

Ну и если изложишь что это за данные, откуда они берутся и что с ними предполагается делать, может быть тебе ещё чего хорошего посоветуют. ;-)
Записан
XandoX
Гость
« Ответ #7 : Сентябрь 25, 2007, 13:03 »

Ну и если изложишь что это за данные, откуда они берутся и что с ними предполагается делать, может быть тебе ещё чего хорошего посоветуют. ;-)

ну данные забираются с железяки специальной, часть даных, а часть с помощью редактирования надо отсылать,
тут проблема не в том где и как редактировать, а в том что TableView не успевает сообразить что надо редактировать,
тоесть вопрос в том как сохранять инфу про редактирование и где ее брать, я пробовал ставить тригер редактирования SelectedClicked, но он все равно похоже не успевает отработать, а время опроса менять не хочеться, уж больно тогда данные запаздывають
Записан
denka
Гость
« Ответ #8 : Сентябрь 25, 2007, 13:42 »

По моему проблема у тебя в том что ты делаеш полный reset всему вьюву. Я так понимаю данные от железяки и от опереатора не пересекаються. Не лучше обновлять только то что изменилось и не трогать то что нет? Тебе стоит изменить логику своей модели. Ведь dataChanged еще не кто не отменял.
Записан
XandoX
Гость
« Ответ #9 : Сентябрь 25, 2007, 13:50 »

блин, еще одну проблему нашел.

если в таблице записей стоко, что включается скролинг,  то при выделение одно из айтемов, таблица пытается сохранить его на экране, как это отключить? а то я что-то не нашел
Записан
XandoX
Гость
« Ответ #10 : Сентябрь 25, 2007, 14:29 »

оооо все заработало, спасибо den'ka
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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