как вставить делегат в QTableView, из числа стандартных |
Здравствуйте, гость ( Вход | Регистрация )
как вставить делегат в QTableView, из числа стандартных |
Litkevich Yuriy |
31.3.2008, 9:32
Сообщение
#1
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
имеется табличное представление нужно для определенного столбца установить в качестве виджета-редактора QDateTimeEdit,
у представления есть метод setItemDelegateForColumn( int column, QAbstractItemDelegate * delegate ) как превратить QDateTimeEdit в QAbstractItemDelegate чё-то я не доганяю почитал про QItemEditorFactory но все равно туплю. |
|
|
ViGOur |
31.3.2008, 9:39
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Вот пример: A Simple Delegate, правда с QSpinBox, но думаю достаточно понятно.
|
|
|
Litkevich Yuriy |
31.3.2008, 9:43
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
да вот пример этот не соответствует идее "Меньше кода-больше дела", чтобы готовый виджет засандалить столько надо накодить. ядумал есть какойнибудь метод на манер этого:
|
|
|
ViGOur |
31.3.2008, 9:50
Сообщение
#4
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Тада не знаю не пробовал...
|
|
|
Litkevich Yuriy |
8.4.2008, 7:07
Сообщение
#5
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
в общем соорудил я несколько делегатов в одном классе.
А именно: QSpinBox QComboBox, оперирующий 2 значениями ,"1" и "0" -- т.е. Булевый QDateTimeEdit Эксплуатировать так:
Вдруг кому пригодится, выкладываю тестовый проект с моим творением ystddelegate.zip ( 8,88 килобайт ) Кол-во скачиваний: 746 там и файл для DoxyGen'а |
|
|
Litkevich Yuriy |
8.4.2008, 7:08
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
В догонку HTML-документация, которую нагенерил DoxyGen
ystddelegate_doc.zip ( 93,18 килобайт ) Кол-во скачиваний: 558 |
|
|
rich |
8.4.2008, 20:47
Сообщение
#7
|
Участник Группа: Участник Сообщений: 123 Регистрация: 1.3.2008 Пользователь №: 109 Спасибо сказали: 6 раз(а) Репутация: 0 |
если в Qt 4.1.4 для QTableWidget есть только
можно ли вставить делегат только для определенного столбца? |
|
|
Litkevich Yuriy |
8.4.2008, 21:14
Сообщение
#8
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
думаю что по простому ни как
|
|
|
icore2008 |
10.4.2008, 20:24
Сообщение
#9
|
Студент Группа: Новичок Сообщений: 22 Регистрация: 10.4.2008 Пользователь №: 145 Спасибо сказали: 0 раз(а) Репутация: 0 |
Юрий, спасибо Вам большое за проект.
попробовал правда его откомпилировать с помощью VC++, что-то не пошлО, заругался компилятор: Цитата cl -c -nologo -Zm200 -Zi -MDd -Zi -MDd -GR -EHsc -W3 -w34100 -w34189 -DUNICODE -DWIN32 -D
ystddelegate.cpp ystddelegate.cpp(60) : error C2360: initialization of 'cmbox' is skipped by 'case' label ystddelegate.cpp(56) : see declaration of 'cmbox' ystddelegate.cpp(63) : error C2361: initialization of 'cmbox' is skipped by 'default' label ystddelegate.cpp(56) : see declaration of 'cmbox' ystddelegate.cpp(90) : error C2360: initialization of 'cmbox' is skipped by 'case' label ystddelegate.cpp(80) : see declaration of 'cmbox' ystddelegate.cpp(95) : error C2361: initialization of 'dtedit' is skipped by 'default' label ystddelegate.cpp(91) : see declaration of 'dtedit' ystddelegate.cpp(95) : error C2361: initialization of 'cmbox' is skipped by 'default' label ystddelegate.cpp(80) : see declaration of 'cmbox' ystddelegate.cpp(117) : error C2360: initialization of 'cmbox' is skipped by 'case' label ystddelegate.cpp(114) : see declaration of 'cmbox' ystddelegate.cpp(121) : error C2361: initialization of 'dtedit' is skipped by 'default' label ystddelegate.cpp(118) : see declaration of 'dtedit' ystddelegate.cpp(121) : error C2361: initialization of 'cmbox' is skipped by 'default' label ystddelegate.cpp(114) : see declaration of 'cmbox' NMAKE : fatal error U1077: 'cl' : return code '0x2' Stop. NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio .NET\VC7\BIN\nmake.exe"' : Stop. |
|
|
Litkevich Yuriy |
10.4.2008, 20:36
Сообщение
#10
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
честно говоря, время позднее и голова тормозит, может операторы при case в скобки взять:
Сообщение отредактировал Litkevich Yuriy - 10.4.2008, 20:37 |
|
|
Текстовая версия | Сейчас: 3.12.2024, 9:18 |