Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 01.08.2013
Сообщений: 7

QListView упорно не хочет "дружить" с клавиатурными стрелками

03.12.2014, 16:20. Показов 2076. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
ОС: Win7 pro x64
Qt Creator: 3.2.1
Qt: 5.3.2

Здравствуйте! В левой половине MainWindow расположен ListView, в который из sqlite тянется список ФИО. При выделении строки в ListView с помощью клавиатурных стрелок в правую часть окна должно вытягиваться (из той же базы) данные по выделенному ФИО. Тема
C++ (Qt)
1
2
3
4
5
void MainWin::keyPressEvent(QKeyEvent *keyBrd)
{
    switch (keyBrd->key())
    {
        case Qt::Key_Up:
или
C++ (Qt)
1
if ((keyBrd->key() == Qt::Key_Up) || (keyBrd->key() == Qt::Key_Down))
не работает. Курсор по ListView бегает, а данные не выводятся. Обработчик получения данных из базы по ФИО работает. Что я делаю не так? Заранее благодарен за помощь!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.12.2014, 16:20
Ответы с готовыми решениями:

IP-TV не хочет дружить с wi-fi
Роутер: D-Link DIR-620 Программа IPTV: GoodNet TV DVB-over-IP Player Dune HD tv-102 с установленным triolan iptv В общем, проблема...

result не хочет дружить с return
Не судите строго, я только учусь, я знаю, что по википедии можно сделать этот код проще, но смысл в том, что я хочу вывести результат...

Адсенс хочет дружить с webmoney
http://www.sostav.ru/news/2006/08/30/71/

7
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
03.12.2014, 18:52
Добавьте эту строку в конец keyPressEvent()
C++ (Qt)
1
QMainWindow::keyPressEvent(keyBrd);
0
0 / 0 / 0
Регистрация: 01.08.2013
Сообщений: 7
03.12.2014, 21:47  [ТС]
RazrFalcon, сделал так:
C++ (Qt)
1
2
3
4
5
6
7
8
void MainWin::keyPressEvent(QKeyEvent *keyBrd)
{
    if ((keyBrd->key() == Qt::Key_Up) || (keyBrd->key() == Qt::Key_Down))
    {
        showPCData();
        QMainWindow::keyPressEvent(keyBrd);
    }    
}
Результат: данные получаю только если курсор в конце списка и я жму вниз или в начале списка и я жму вверх. Странно в общем.
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
03.12.2014, 21:52
Razlagutt, Я же сказал в конец функции:
C++ (Qt)
1
2
3
4
5
6
7
8
void MainWin::keyPressEvent(QKeyEvent *keyBrd)
{
    if ((keyBrd->key() == Qt::Key_Up) || (keyBrd->key() == Qt::Key_Down))
    {
        showPCData();
    }    
    QMainWindow::keyPressEvent(keyBrd);
}
0
0 / 0 / 0
Регистрация: 01.08.2013
Сообщений: 7
03.12.2014, 21:56  [ТС]
RazrFalcon, да я видел, только результат тот же.
0
182 / 37 / 5
Регистрация: 29.01.2013
Сообщений: 256
04.12.2014, 22:55
Цитата Сообщение от Razlagutt Посмотреть сообщение
Что я делаю не так?
лови этот сигнал и обрабатывай его
0
0 / 0 / 0
Регистрация: 01.08.2013
Сообщений: 7
06.12.2014, 12:38  [ТС]
trdm, этот вариант мне первым и пришел в голову. Только я не прибегал к классу QAbstractItemView, ибо сигнал activated у этого класса аналогичен сигналу у самого ListView. Т.е. можно написать:
C++
1
connect(ui->myList, SIGNAL(activated(QModelIndex)), SLOT(mySlot));
В справке мы вообще читаем "Inherited By: QColumnView, QHeaderView, QListView, QTableView, and QTreeView." Короче activated не фурычит. Я прям поражен, базовая вещь и такая геморная.
0
182 / 37 / 5
Регистрация: 29.01.2013
Сообщений: 256
08.12.2014, 13:59
есть вариант получить селекшион модель и воспользоваться её сигналами.
QAbstractItemView::selectionModel () const
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.12.2014, 13:59
Помогаю со студенческими работами здесь

ТВ упорно не хочет видеть компьютер
Товарищи, мне необходима помощь. Купил телек год назад. Подключил к нему компьютер - все было ок. Но дальше начались чудеса. ...

Упорно не хочет индексировать ЯШа
Никак не хочет быстро индексировать сайт - а от актуальности информации зависит посещаемость - новые материалы появляются 2 раза в день ...

Visual Studio не хочет дружить с Java
Добрый день, ребят. Столкнулся с подобной проблемой: Облазил несколько десятков форумов, но решения данной проблемы не смог найти. ...

Windows 10 не хочет дружить с AC3Filter кодеком
Доброго времени суток ^_^ Всегда устанавливаю не K-Lite Codec Pack, а отдельно ffdshow, haali, LAVFilter и AC3Filter, что бы AC3 и DTS...

Веб служба не хочет дружить с IIS
Все привет. Написал небольшую службу на C#. Получил набор myservice.svc, web.config и каталог Bin с набором dll. Есть Windows 2008...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru