Делегаты Qt
Как сделать чтобы делегат(конопка) всегда был виден в ячейке QTableWidget?
надо именно для делегатов. Через SetCellWidget не трудно кнопку вставить.
Цитата: S@tana
Через SetCellWidget не трудно кнопку вставить.
Да! Он именно для этого и сделан! Не хочешь использовать готовые решения, а изобретать велосипеды - не используй sdk никакой
2)Делегат - посредник вызова метода класса. Не представляю как он может быть кнопкой.
3) Если хочешь через делегаты (в qt их как таковых нет, их заменяет система сигналов-слотов, объявить например slot foo; foo=myclass->method; нельзя) самому двигать кнопку - ставишь eventFilter , в нём проверяешь объект и тип события - если твой table и event->type()==QEvent::Scroll , двигаешь куда надо кнопку.
Цитата:
Не представляю как он может быть кнопкой
В офф документации ставят спинбоксы и прогрессбары (причем без всяких setCellWidget), почемуж кнопку нельзя?
делегатами перепутал.
В кратце нужно создать свой класс, наследованный от QStyledItemDelegate , внутри которого создавать и рисовать кнопку.
Доки для чтения.
http://developer.qt.nokia.com/doc/qt-4.8/qstyleditemdelegate.html
http://developer.qt.nokia.com/doc/qt-4.8/itemviews-spinboxdelegate.html
http://developer.qt.nokia.com/doc/qt-4.8/itemviews-stardelegate.html
http://developer.qt.nokia.com/doc/qt-4.8/itemviews-pixelator.html
http://developer.qt.nokia.com/doc/qt-4.8/qabstractitemdelegate.html
А для чего собственно тебе именно делегат то нужен?
А всё, понял, я просто с C#-скими
В кратце нужно создать свой класс, наследованный от QStyledItemDelegate , внутри которого создавать и рисовать кнопку.
Доки для чтения.
http://developer.qt.nokia.com/doc/qt-4.8/qstyleditemdelegate.html
http://developer.qt.nokia.com/doc/qt-4.8/itemviews-spinboxdelegate.html
http://developer.qt.nokia.com/doc/qt-4.8/itemviews-stardelegate.html
http://developer.qt.nokia.com/doc/qt-4.8/itemviews-pixelator.html
http://developer.qt.nokia.com/doc/qt-4.8/qabstractitemdelegate.html
А для чего собственно тебе именно делегат то нужен?
P.S. Хочу сделать делегат-кнопку для удаления соответствующей строки таблицы. Это можно сделать через setCellWidget как предлагалось выше, но опять же есть желание разобраться именно с делегатами.
В этом примере показано как сделать делегат, который будет отрисовываться постоянно.