Как для всей колонки сделать маску ввода?
Имеется QTableView. Хотелось бы, чтобы для всей колонки была маска ввода. Как это можно сделать?
Ответы (1 шт):
Автор решения: Chorkov
→ Ссылка
Примерно так:
class YouEditMaskDelegate : public QStyledItemDelegate
{
public:
using QStyledItemDelegate::QStyledItemDelegate;
QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
auto * edit = QStyledItemDelegate::createEditor(parent,option,index);
auto * lineEdit = dynamic_cast<QLineEdit*>(edit);
if(lineEdit)
{
lineEdit->setInputMask("you mask");
/// модифицирует QLineEdit как хотим ...
}
return edit;
}
};
table->setItemDelegateForColumn( 3, new YouEditMaskDelegate(this) );