Bonjour,

Je travaille sur une QTableView qui ajuste la taille des cellules au contenu sauf pour une des colonnes qui s'élargit afin de remplir la largeur disponible.
Le problème est le suivant, il apparaît des coupures (ellide) dans le texte des cellules qui sont sensées être redimensionnées avant l'élargissement de la cellule qui s'ajuste.

Le QTableView est configuré comme ci-dessous :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
    ui_view->setModel(m_model);
    ui_view->hideColumn(m_model->fieldIndex("eve_id"));
    ui_view->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents);
    ui_view->horizontalHeader()->setResizeMode(m_model->fieldIndex("eve_description"), QHeaderView::Stretch);
    ui_view->horizontalHeader()->setClickable(false);
    ui_view->sortByColumn(m_model->fieldIndex("eve_begin"));
Et le modèle ré-implémente le rôle Qt::SizeHintRole comme ci-dessous :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
else if(role == Qt::SizeHintRole)
    {
        if(index.column() != fieldIndex("eve_description"))
        {
            QFontMetrics fm(QSqlTableModel::data(index, Qt::FontRole).value<QFont>());
            return QSize(fm.width(QSqlTableModel::data(index, Qt::DisplayRole).toString()),
                         QSqlTableModel::data(index, Qt::SizeHintRole).toSize().height());
        }
        else
        {
            return QSize(0, QSqlTableModel::data(index, Qt::SizeHintRole).toSize().height());
        }
    }
Sachant que eve_description est le nom de la colonne qui s'ajuste...
Quelqu'un à une idée ?

Merci