IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PyQt Python Discussion :

Lignes visibles dans QTableView [QtGui]


Sujet :

PyQt Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Par défaut Lignes visibles dans QTableView
    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

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    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 ?

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Par défaut
    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!

  4. #4
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Citation Envoyé par atalon1 Voir le message
    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!
    Pourquoi ne pas traiter toutes les lignes ?

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Par défaut
    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:

    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
    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 :

    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....

    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.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 197
    Par défaut
    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)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer une ligne éditable dans une QTableView
    Par Rakken dans le forum Débuter
    Réponses: 0
    Dernier message: 01/12/2014, 11h21
  2. Copie de plusieurs lignes visibles dans une autre feuille
    Par Shanock dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/04/2014, 22h12
  3. copie les ligne visible dans un autre onglet
    Par calvi2002 dans le forum Excel
    Réponses: 4
    Dernier message: 16/07/2009, 09h09
  4. Réponses: 2
    Dernier message: 21/06/2007, 13h40
  5. determiner les ligne visible ds un RichEdit
    Par hhfr dans le forum Composants VCL
    Réponses: 4
    Dernier message: 19/09/2002, 18h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo