Не могу получить текущую выделенную строку, QTableWidget и класс наследник QTableWidget |
Здравствуйте, гость ( Вход | Регистрация )
Не могу получить текущую выделенную строку, QTableWidget и класс наследник QTableWidget |
RazrFalcon |
11.3.2011, 20:49
Сообщение
#1
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
.cpp
.h
Вывод консоли: При клике:
При нажатии клавиши:
Задача: получить номер текущей выделенной строки и передать ее в on_cellClicked Сообщение отредактировал RazrFalcon - 11.3.2011, 20:52 |
|
|
abc |
11.3.2011, 21:46
Сообщение
#2
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
ты создал окно в KeyPressed, но никакую строку, конечно, не выделил, и currentRow возвращает -1 за неимением текущей строки
а onCellClicked сама даёт тебе номер строки, в чём недопонимание? моё или твоё?) Сообщение отредактировал abc - 11.3.2011, 21:48 |
|
|
RazrFalcon |
11.3.2011, 23:23
Сообщение
#3
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
onCellClicked - говорит само за себя, а мне нужно получать номер строки при использовании клавиш вниз и вверх. Для этого использовал класс перехвата нажатий клавиатуры. Он понимает что я нажал вниз, выделение спустилось на одну строку ниже, а индекс -1. Вот в чем проблема.
|
|
|
abc |
11.3.2011, 23:49
Сообщение
#4
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
Объясни, что у тебя делает
MainWindow my; в tableWidget::keyPressEvent? |
|
|
RazrFalcon |
11.3.2011, 23:55
Сообщение
#5
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Так я пытался обратится к таблице. Она в MainWindow определена и используется.
|
|
|
abc |
12.3.2011, 0:04
Сообщение
#6
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
Таблице ничего не нужно знать о MainWindow
Слот изменяющий строку должен быть методом класса таблицы, не MainWindow |
|
|
RazrFalcon |
12.3.2011, 0:12
Сообщение
#7
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
|
|
|
abc |
12.3.2011, 0:20
Сообщение
#8
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
Это я ничего не понял) Только что создал окошко, посадил туда таблицу. При нажатиях клавиш, выделение двигается - остаётся только соединить сигнал
void currentCellChanged ( int currentRow, int currentColumn, int previousRow, int previousColumn ) со своим слотом, и ты в этом слоте получишь все эти значения: int currentRow, int currentColumn, int previousRow, int previousColumn не нужно тебе наследование от QTableWidget и KeyPressEvent Ну, и поясню, что я до этого городил. Если у тебя есть класс А, член класса Б, то ты не можешь нуждаться в методах класса Б в классе А. Б использует А, а не наоборот. Жутко формулирую?( Тем более ты не можешь создавать в А объект Б! У тебя это чудом вышло - потому что оба класса разрабатываются в одном файле. А если бы было два заголовочника, и ты бы их друг в друге заинклудил, то компилятор бы с тобой поговорил) Ты дошёл до жизни такой, видимо, потому, что нуждался в слоте on_currentRowIndexChanged() из класса MainWindow, но на самом деле это не так. И в любом случае ты неверно работал в keyPressEvent(QKeyEvent *event). Ты не использовал переменную event, а значит обрабатывал нажатия на любые клавиши. А суть этого метода в том, чтобы получить нажатие конкретной клавиши, и это нажатие оригинально обработать. Сообщение отредактировал abc - 12.3.2011, 1:09 |
|
|
RazrFalcon |
12.3.2011, 0:40
Сообщение
#9
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
ппц, это просто эпикфэйл!
Спасибо, разобрался! |
|
|
abc |
12.3.2011, 1:12
Сообщение
#10
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
я там подправил кое-что, перечитай сижу тут правлю формулирую уже полчаса, не зная, какой аспект фэйла и осветить-то))
|
|
|
Текстовая версия | Сейчас: 1.12.2024, 5:36 |