Bonjour à tous,

J'ai besoin d'imprimer l'arbre affiché dans une QTreeview.

Pour cela, j'ai essayé le code suivant (affiche l'arbre dans une Pixmap):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
QPixmap PrintWidget::getTreeView(QTreeView* treeview){
       int width = treeview->viewport()->size().width();
       int scrollMax = treeview->verticalScrollBar()->maximum();
       int height = treeview->maximumViewportSize().height() + scrollMax;
       treeview->verticalScrollBar()->setSliderPosition(0);
       QPixmap pixmap(width,height);
       QRegion region(0,0,width,height);
       QPainter painter(&pixmap);
       treeview->viewport()->render(&painter,QPoint(),region,RenderFlags(QWidget::DrawChildren|QWidget::IgnoreMask));
       return pixmap;
 }
Et cela marche... uniquement si l'utilisateur a déjà vu la QTreeview, sinon ça n'en affiche qu'une partie, voir rien. Or je veux pouvoir imprimer le contenu de cette QTreeview indépendamment du fait qu'elle a déjà été affichée ou pas.

Comment faire ?

Merci