![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Steklova Olga |
![]()
Сообщение
#1
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 198 Регистрация: 27.9.2011 Из: Санкт-Петербург Пользователь №: 2912 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
Всем привет!
![]() У меня в БД FireBird есть следующая таблица: Хочу ее отобразить в QTableView. Оператор должен иметь возможность просмотра таблицы, а редактирование данных должно быть запрещено. Для этого мне, видимо, нужно создать делегат. Посмотрите, пожалуйста, для моего случая достаточно того, что я написала? delegate.h
delegate.cpp
mainwindow.cpp
![]() Сообщение отредактировал Steklova Olga - 2.4.2012, 15:29 |
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Steklova Olga, ты про делегат не правильно понимаешь.
Коротко: Делегат - класс, объект которого создаёт представление, этот класс в обычном режиме рисует элемент данных в определённом месте представления (получая данные непосредственно из модели). Рисование элемента осуществляется в функции делегата paint(). Когда пользователь переходит в режим редактирования данных (а тебе это не нужно), представление вызывает у делегата целую пачку методов, начиная с createEditor(), которая просто создаёт виджет-редактор. Виджет-редактор - виджет, который создаётся делегатом только для редактирования данных. По завершении редактирования виджет-редактор разрушается. Поняла? П.С. Только сейчас стал понимать, в чём проблема (описаная в другой теме) в твоём делегате. Видимо ты создаёшь объект QTextEdit в качестве виджета-редактора, и ожидаешь что делегат в обычном режиме будет себя вести как QTextEdit. Хотя делегат в этом режиме самостоятельно занимается рисованием элемента на экране. |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 18.2.2025, 14:40 |