2011-10-11 6 views
1

J'ai une grille qui est affichée en utilisant un contrôle qui hérite de QTableView. En ce moment, la grille est affichée à gauche à droite, puis comme les choses trop-plein, il va à la ligne suivante comme celui-ciQt QTableView flux de haut en bas

----------- 
| 1 | 2 | 3 | 
|------------ 
| 4 | | | 
|------------ 
| | | | 
----------- 

mais je veux aller de haut en bas d'abord, puis comme les choses trop-plein, il devrait aller à la colonne suivante comme celui-ci

----------- 
| 1 | 4 | | 
|------------ 
| 2 | | | 
|------------ 
| 3 | | | 
----------- 

Je suis la plupart du temps un développeur .Net et il est assez trivial avec .net WinForms contrôles, mais comment puis-je QTableView de le faire?

Merci

+0

Il existe une solution sur http://stackoverflow.com/questions/21653253/how-to-change-orientation-of-qt-tableview – savolai

Répondre

3

Les données affichées sont fonction de votre modèle. La meilleure façon de modifier le comportement consiste à créer un proxy QAbstractTableModel qui permute les lignes et les colonnes. La complexité de ce processus dépendra de votre modèle actuel. On dirait presque que vous avez un modèle linéaire et que la vue se présente sous la forme d'une table, auquel cas vous utilisez probablement le mauvais modèle. Si vous avez vraiment un modèle linéaire, pensez à utiliser QAbstractListModel et QListView. QListView possède alors une propriété flow qui vous permet de choisir entre gauche-droite et haut-bas.