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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Связь двух объектов  (Прочитано 3070 раз)
tornadodead
Гость
« : Март 01, 2012, 07:29 »

Вообщем такое дело, есть класс MyTable унаследованный от QTableView, есть MainWIndow в котором инициализируется класс MyTable, и еще lineEdit, так вот нужно при двойном клике по строке таблицы(MyTable) обновить содержиние таблицы(это пустяк, сделал) и в MainWindow в lineEdit вывести данные нажатой ячейки.
Пока один вариант нашел
в MyTable сделать connect doubleClicked, и обновить данные, и в MainWindow сделать connect сигнала doubleClicked таблицы и заполнить lineEdit, но какоето дублирование получается=))).
Хотел разгрузить MainWidow, поэтому создал класс MyTable, чтоб функционал таблицы не фигурировал в MainWindow, но видимо не все так просто=)))так как созданный объект(MyTable) ни чего не знает о том кто его породил, и это правильно!
У кого какие идеи? Видимо спроектировал не привильно!!!
« Последнее редактирование: Март 01, 2012, 07:31 от tornadodead » Записан
spirits25
Гость
« Ответ #1 : Март 01, 2012, 08:07 »

а почему бы MyTable'у парента не передать в конструкторе? или просто указатель на MainWindow, чтобы знал куда стучать?
Записан
tornadodead
Гость
« Ответ #2 : Март 01, 2012, 08:10 »

а почему бы MyTable'у парента не передать в конструкторе? или просто указатель на MainWindow, чтобы знал куда стучать?
Думал об этом, но мне кажется с точки ООП это не совсем правильно, или мне просто так кажется?
Записан
Bepec
Гость
« Ответ #3 : Март 01, 2012, 08:14 »

Вы немного путаетесь и ещё не пробовали сигналы слоты?

Если вы наследовались от QTableView, то унаследовали и все его сигналы, уже готовые clicked, dblClicked.

Нет нужды ничего выдумывать, просто надо использовать то, что есть.
Записан
tornadodead
Гость
« Ответ #4 : Март 01, 2012, 08:18 »

Вы немного путаетесь и ещё не пробовали сигналы слоты?

Если вы наследовались от QTableView, то унаследовали и все его сигналы, уже готовые clicked, dblClicked.
да я знаю, что унаследовал все, и сигналы и т.д., вопрос в другом как обратится из MyTable в MainWidow? Как предложили передать указатель MainWidow в MyTable можно но действительно это правильно будет?
Записан
Bepec
Гость
« Ответ #5 : Март 01, 2012, 08:22 »

Зачем тебе обращаться к MainWindow???

Делай проще, не ищи проблем.

При дабл клике (ловишь унаследованный сигнал в QMainWindow) и в нём одновременно обновляешь модель
Код:
аля model_.reset()
и ставишь значения в lineEdit().

В чём проблема???
Записан
tornadodead
Гость
« Ответ #6 : Март 01, 2012, 08:26 »

При дабл клике (ловишь унаследованный сигнал в QMainWindow) и в нём одновременно обновляешь модель
Код:
аля model_.reset()
и ставишь значения в lineEdit().
В чём проблема???
сделал так, в MyTable создал слот обновляющий таблицу,а в MainWindow сгенерировал сигнал, а вслоте создал вызов слот из MyTable и оновление lineEdit, вроде все нормально!
« Последнее редактирование: Март 01, 2012, 09:14 от tornadodead » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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