crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Не могу получить текущую выделенную строку
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
RazrFalcon Дата 12.3.2011, 1:41
 
Цитата(abc @ 11.3.2011, 23:20) *
void currentCellChanged ( int currentRow, int currentColumn, int previousRow, int previousColumn )

вот так я решил свою проблему, класс tableWidget удалил вообще.


Цитата(abc @ 11.3.2011, 23:20) *
Ну, и поясню, что я до этого городил.
Если у тебя есть класс А, член класса Б, то ты не можешь нуждаться в методах класса Б в классе А. Б использует А, а не наоборот. Жутко формулирую?( Тем более ты не можешь создавать в А объект Б! У тебя это чудом вышло - потому что оба класса разрабатываются в одном файле. А если бы было два заголовочника, и ты бы их друг в друге заинклудил, то компилятор бы с тобой поговорил) Ты дошёл до жизни такой, видимо, потому, что нуждался в слоте on_currentRowIndexChanged() из класса MainWindow, но на самом деле это не так.

И в любом случае ты неверно работал в keyPressEvent(QKeyEvent *event).
Ты не использовал переменную event, а значит обрабатывал нажатия на любые клавиши. А суть этого метода в том, чтобы получить нажатие конкретной клавиши, и это нажатие оригинально обработать.

Конкретные клавиши я обрабатывал сначала, но толку было столько же, по этому сделал что бы на любую реагировало.
Я уже и сам, вроде, понял, что намудрил с классами.
abc Дата 12.3.2011, 1:12
  я там подправил кое-что, перечитай :) сижу тут правлю формулирую уже полчаса, не зная, какой аспект фэйла и осветить-то))
RazrFalcon Дата 12.3.2011, 0:40
  ппц, это просто эпикфэйл!
Спасибо, разобрался!
abc Дата 12.3.2011, 0:20
  Это я ничего не понял) Только что создал окошко, посадил туда таблицу. При нажатиях клавиш, выделение двигается - остаётся только соединить сигнал
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, а значит обрабатывал нажатия на любые клавиши. А суть этого метода в том, чтобы получить нажатие конкретной клавиши, и это нажатие оригинально обработать.
RazrFalcon Дата 12.3.2011, 0:12
 
Цитата(abc @ 11.3.2011, 23:04) *
Слот изменяющий строку должен быть методом класса таблицы, не MainWindow

А можно пример кода, а то я ничего не понял. <_<
abc Дата 12.3.2011, 0:04
  Таблице ничего не нужно знать о MainWindow
Слот изменяющий строку должен быть методом класса таблицы, не MainWindow
RazrFalcon Дата 11.3.2011, 23:55
  Так я пытался обратится к таблице. Она в MainWindow определена и используется.
abc Дата 11.3.2011, 23:49
  Объясни, что у тебя делает
MainWindow my;
в tableWidget::keyPressEvent?
RazrFalcon Дата 11.3.2011, 23:23
  onCellClicked - говорит само за себя, а мне нужно получать номер строки при использовании клавиш вниз и вверх. Для этого использовал класс перехвата нажатий клавиатуры. Он понимает что я нажал вниз, выделение спустилось на одну строку ниже, а индекс -1. Вот в чем проблема.
abc Дата 11.3.2011, 21:46
  ты создал окно в KeyPressed, но никакую строку, конечно, не выделил, и currentRow возвращает -1 за неимением текущей строки
а onCellClicked сама даёт тебе номер строки, в чём недопонимание? моё или твоё?)
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 14:20