Ознакомьтесь с документацией по адресу http://docs.angularjs.org/api/ng.filter:date . Там вы увидите нужный формат:
{{date_expression | date:'MMMM'}}
Я думаю, вам нужно создать подкласс QItemDelegate .
QItemDelegate может использоваться для предоставления настраиваемые функции отображения и редактор виджеты для просмотра элементов на основе Подклассы QAbstractItemView. Используя делегат для этой цели позволяет механизмы отображения и редактирования должны быть индивидуально настроены и разработаны from the model and view.
This code is taken from Qt's examples, the torrent application.
class TorrentViewDelegate : public QItemDelegate
{
Q_OBJECT
public:
inline TorrentViewDelegate(MainWindow *mainWindow) : QItemDelegate(mainWindow) {}
inline void paint(QPainter *painter, const QStyleOptionViewItem &option,
const QModelIndex &index ) const
{
if (index.column() != 2) {
QItemDelegate::paint(painter, option, index);
return;
}
// Set up a QStyleOptionProgressBar to precisely mimic the
// environment of a progress bar.
QStyleOptionProgressBar progressBarOption;
progressBarOption.state = QStyle::State_Enabled;
progressBarOption.direction = QApplication::layoutDirection();
progressBarOption.rect = option.rect;
progressBarOption.fontMetrics = QApplication::fontMetrics();
progressBarOption.minimum = 0;
progressBarOption.maximum = 100;
progressBarOption.textAlignment = Qt::AlignCenter;
progressBarOption.textVisible = true;
// Set the progress and text values of the style option.
int progress = qobject_cast<MainWindow *>(parent())->clientForRow(index.row())->progress();
progressBarOption.progress = progress < 0 ? 0 : progress;
progressBarOption.text = QString().sprintf("%d%%", progressBarOption.progress);
// Draw the progress bar onto the view.
QApplication::style()->drawControl(QStyle::CE_ProgressBar, &progressBarOption, painter);
}
};
Basically as you can see it checks if the column to be painted is of a specific index, if so it paints a progress bar. I think you could tweak it a little and instead of using a QStyleOption you could use your own widget.
edit: don't forget to setup your item delegate with your QListView using setItemDelegate.
While investigating your question I've stumbled upon this thread, which elaborates how to paint a custom widget using a QItemDelegate, I believe it has all the info you might need.
Assist говорит, что:
void QTableWidget::setCellWidget (int row, int column, QWidget * widget)
Устанавливает отображение данного виджета в ячейке в данной строке и столбце, передавая право собственности на виджет стол. Если виджет ячейки A заменен виджетом ячейки B, виджет ячейки A будет удален.
И есть аналоги этому методу в большинстве потомков QAbstractItemView.
Вы должны создать подкласс Q *** Delegate только тогда, когда вы хотите, чтобы виджет редактора отображался в представлении, только когда вы нажимаете EditTrigger, затем исчезают и позволяют делегату каким-либо образом визуализировать элемент представления.
Если я поправлю,вы хотели видеть элемент управления в представлении элементов все время и иметь возможность нажимать элементы управления без необходимости входить в режим редактирования и ждать, пока делегат создаст редактор и установит его состояние, поэтому вам не нужно создавать конкретного делегата, просто установите виджет в просмотр элемента.