![]() |
|
![]() ![]() ![]() |
|
Sosed |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 18.8.2009 Репутация: нет Всего: 1 |
Имеется делегат, с помошью которого устанавливаю в таблицу столбец QPushButton'ов.
Собственно нужно по нажатию одного из QPushButton'a вызвать диалог, после закрытия которого записать данные в ячейку с вызвавшей его кнопкой. Проблема в том что я запутался в MVC и немогу понять куда воткнуть connect для кнопки. Если его делать в методе делегата createEditor, то как записать данные в модель, в нужное место? Есть мысль хранить указатель на модель в классе делегата и использовать сигналмапер для коннекта кнопок, передавая номер строки, на которой расположена кнопка, столбец "вшить", он не меняется, соответственно зная точные координаты ячейки записать данные проблемы не составит. Но что-то не нравится мне этот указатель в классе делегата да и попахивает это решение. Как правильно сделать? Это сообщение отредактировал(а) Sosed - 5.8.2010, 17:15 |
|||
|
||||
icecrashldr |
|
|||
![]() Developer ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 5.7.2010 Репутация: нет Всего: нет |
Забыл как в QT присваеваются ID к кнопкам..
Вообщем идея в том, что бы по ID кнопки можно было вычислить номер строки, тогда получится динамика. ![]() |
|||
|
||||
Sosed |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 18.8.2009 Репутация: нет Всего: 1 |
Класс делегата сейчас примерно такой
Такое чувство что все эти манипуляции нужно делать где-то в другом месте.
да вроде никак) У меня проблему вычисления строки решает сигналмапер. |
||||
|
|||||
icecrashldr |
|
|||
![]() Developer ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 5.7.2010 Репутация: нет Всего: нет |
Идея в том что бы для всех buttons поставить один слот, а в слоту разберать на какой button был клик. Либо можно пронаследоваться от QPushButton и добавить свои уникальные данные.
|
|||
|
||||
borisbn |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
Наследоваться необязательно. Каждому объекту, наследованного от QObject, можно задать свойство типа так:
а в слоте вычитывать её
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||||
|
|||||||
icecrashldr |
|
|||
![]() Developer ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 5.7.2010 Репутация: нет Всего: нет |
borisbn, Точно, точно
![]() |
|||
|
||||
Sosed |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 18.8.2009 Репутация: нет Всего: 1 |
С индексами разобрались а как данные то записать?
С if(!model) model = index.model(); я немного опечатался, метод то const, да и вообще правильно ли хранить указатель на модель в делегате? Кнопка отображается с помощью openPersistentEditor, поэтому немогу засунуть код слота openOptionDialog в метод делегата setModelData, диалог появляется не сразу, а после щелчка на другой ячейке( |
|||
|
||||
Sosed |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 18.8.2009 Репутация: нет Всего: 1 |
Скривившись сделал так
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |