Bonjour,
j'aimerai savoir comment on fait pour trouver les lignes qui sont visibles (c'est à dire affichées dans l'aire visible) dans une Qtableview? (Qt4).
Merci d'avance
Bonjour,
j'aimerai savoir comment on fait pour trouver les lignes qui sont visibles (c'est à dire affichées dans l'aire visible) dans une Qtableview? (Qt4).
Merci d'avance
Bonne question, à part ceci: QRegion QTableView.visualRegionForSelection (self, QItemSelection)
peu ou pas documenté, je ne vois rien qui permette la chose.
Ici, on en dit deux lignes.
http://qt.developpez.com/doc/4.6/qab...onforselection
HT: QtAssistant, reconstruit son indexation à chaque ouverture depuis la dernière mise à jour (Ubuntu), avez-vous le même problème ?
Le problème, c'est que je n'ai pas de sélection. Je veux juste savoir quelles sont les lignes qui sont dans la partie visible de la scrollarea de la qtableview. Mon idée étant par la suite de pouvoir cacher les lignes de la partie visible dont les cellules affichées sont vides pour que les lignes d'en dessous avec des cellules non vides soient affichées!
Traiter toutes les lignes, d'accord mais j'ai besoin de savoir lesquelles sont visible pour les rendre invisibles ou pas...
Voici un exemple:
admettons que si ma fenetre contenant la qtableview soit assez grande, j'aurai quelque chose (une table) comme cela:
Mais comme dans la réalité, j'ai des centaines de colonnes et de lignes, je n'en vois qu'une partie (partie visible de la scrollarea). voici par exemple ce que je verrai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 123456789 1 x xxxx x 2xxx 3xxxxxxxx 4 xxxx
On voit ici que la lgine2 ne contient pas de "xxx" au niveau des colonnes 6 à 9 qui sont visible ici, je veux donc être capable de cacher la ligne 2 et que quand je scrolle en horizontal, pour faire apparaitre les colonnes 1 à 4, la ligne 2 ne soit plus cachée mais que la 4 le soit....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 6789 2 3xxxx
Pour cela, il faut que à chaque fois que je scrolle en horizontal, je sois capable de récupérer les colonnes visibles, et de traiter chaque ligne que je cache si pour les colonnes affichées, elle ne contiennent pas de données (string vide).
Voilà, j'espère être plus clair.
Bonjour,
peut être la position de la scrollbar verticale peut vous aider: tableView.verticalScrollBar().value()
vous obtenez ainsi le PREMIER n° de ligne AFFICHE
Pour filtrer, j'essaierai plutôt d'utiliser un model (QAbstractTableModel) et je ferai un tableview.setModel(model)
c'est très simple et très puissant. Il y a foison d'exemple sur ce sujet sur le net (tableview, model)
Partager