Помогите с делегатом, Подправьте пожалуйста делегат, а то я совсем запутался( |
Здравствуйте, гость ( Вход | Регистрация )
Помогите с делегатом, Подправьте пожалуйста делегат, а то я совсем запутался( |
Гость_Hepr_* |
20.2.2011, 15:21
Сообщение
#1
|
Гости |
Здравствуйте, у меня есть делегат- QTimeEdit, я делегирую его в QTableWidget, фактически за основу я взял делегат QSpinBox'a из примеров Qt, и изменил то что мне надо, но выскакивают ошибки, я меняю код, и ошибки меняются
Вот сам код delegate.h
delegate.cpp
Скажите пожалуйста, что я делаю неправильно, и объясните как правильно, если не трудно Вот, какая ошибка выскакивает сейчас Ошибка 1 error C2248: QVariant::QVariant: невозможно обратиться к private член, объявленному в классе "QVariant" c:\Documents and Settings\hepr\Мои документы\Visual Studio 2008\Projects\asd\asd\delegets\delegate.cpp 87 Заранее спасибо! |
|
|
Rocky |
21.2.2011, 18:06
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
1. Вижу объявление указателя на класс QTime * val;
А вот где выделяется память под объект класса не увидел. Если здесь охота работать именно с указателями, нужно в конструкторе написать:
И потом уже использовать val (*val). 2. Нет никакой необходимости делать переменную член класса QTime * val общедоступной. 3. Нет никакой необходимости вообще использовать переменную-член QTime * val. 4. Нет никакой необходимости использовать переменную QTime * val как указатель (достаточно либо самого объекта, либо константной ссылки на него - в данном случае). 5. Многие куски кода можно переписать так:
заменить на:
заменить на:
и т.д. |
|
|
Гость_Hepr_* |
21.2.2011, 18:36
Сообщение
#3
|
Гости |
1. Вижу объявление указателя на класс QTime * val; А вот где выделяется память под объект класса не увидел. Если здесь охота работать именно с указателями, нужно в конструкторе написать:
И потом уже использовать val (*val). 2. Нет никакой необходимости делать переменную член класса QTime * val общедоступной. 3. Нет никакой необходимости вообще использовать переменную-член QTime * val. 4. Нет никакой необходимости использовать переменную QTime * val как указатель (достаточно либо самого объекта, либо константной ссылки на него - в данном случае). 5. Многие куски кода можно переписать так:
заменить на:
заменить на:
и т.д. Спасибо большое, блин искал в ассистенте что делают те или иные функции, классы, а сам память забыл в конструкторе выделить, спасибо большое |
|
|
Гость_Hepr_* |
21.2.2011, 22:35
Сообщение
#4
|
Гости |
Что бы не открывать новой темы, позвольте задать в этой еще 1 вопрос, как я понимаю значение в ячейке таблицы, по умолчанию имеет тип int, а как можно его переделать в QTime, а то после того как я в делегате, выставлю время, она не сохраняется, там так и остается, то значение в int, что и было
|
|
|
Текстовая версия | Сейчас: 26.11.2024, 11:27 |