Название: вопрос по QTable Отправлено: norD от Май 21, 2005, 23:00 Добрый день. Мне нужно изменить порядок переключения между элементами таблицы (по-умолчанию сверху-вниз, а я хочу слева направо). В доках советуют переписывать функции QTable::activateNextCell() , но что-то у меня не получается. Как это сделать?
Название: вопрос по QTable Отправлено: BaltikS от Май 23, 2005, 11:56 Во первых описать новый класс от QTable. Затем переопределить обработку нажатия клавиш, выставляя нужной ячейке фокус. :lol:
Название: вопрос по QTable Отправлено: norD от Май 23, 2005, 21:05 Ну с наследованием от QTable понятно, а как обработчик клавиш пределать (например для Ентер)? Так будет работать?:
Код:
И у меня еще вопрос мне надо изменять размерность таблицы и я скрываю строки и столбцы и подстраиваю размер таблицы с помощью SizeHint, но остается белый фон (который находился под ними). Как от него избавится? Название: вопрос по QTable Отправлено: norD от Май 24, 2005, 22:35 Так, ну с пустым местом от таблицы разобрался-- надо было не скрывать столбцы и строки, а удалять. Возможно когда просто они просто скрываются, то SizeHint() "думает", что таблица не менялась и оставляет все как было. А вот с переопределением обработки нажатия клавиш фигня получается. Написал я вот такой код:
Код:
И теперь, когда фокус ввода находится в таблице при нажатии Enter он действительно переходит между ячейками слева направо, только вот когда я изменяю содержимое ячейки и нажимаю Enter фокус как и раньше движется сверху вниз :twisted: Название: вопрос по QTable Отправлено: BaltikS от Май 26, 2005, 11:58 Я сделал так:
bool MyTable::eventFilter(QObject *target, QEvent *event) { if (event->type() ==QEvent::KeyPress) { QKeyEvent *keyEvent = (QKeyEvent *)event; if (keyEvent->key() == 4100) // если нажата клавиша ENTER { setCurrentCell(currentRow(), currentCol()+1); return true; } } ........................................................................................... } ______________________________________________________ Работает на 100%. Таким образом можно переопределить любую клавишу. Да и обратите внимание, коды клавиш ENTER левого и правого - не совпадают! :lol: [/i][/b] Название: вопрос по QTable Отправлено: norD от Май 26, 2005, 21:44 Спасибо за вариант, я уже по другому сделал: оставил в покое Enter (и правый и левый)-- пусть себе сверху вниз гуляет, а просто начал табом пользоваться :D Теперь у пользователя есть выбор либо с Enterom сверху-вниз или Tabом слева- направо 8) Думаю препод, который сие чудо будет приниать останется доволен.
У меня вот другой вопрос возник: чтобы мое приложение на других машинах запускать нужна qt-334.dll, можно ли использовать какие-нибудь урезанные версии? А то у меня приложение 80кб и библиотека 5мб. Или хотя бы как эту библиотеку внутрь exe пихнуть, чтобы отдельно два файла не таскать? |