Как для всей колонки сделать маску ввода?

Имеется 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) );

→ Ссылка