Dessiner le contenu d'une QTreeview dans un QPainter
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:
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 :mrgreen: