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 :

otpimiser le temps d'affichage d'une qtablewidget


Sujet :

PyQt Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Membre associatif
    Inscrit en
    Juillet 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Membre associatif

    Informations forums :
    Inscription : Juillet 2014
    Messages : 21
    Points : 15
    Points
    15
    Par défaut otpimiser le temps d'affichage d'une qtablewidget
    Bonjour à tous,

    Je galère un peu, parce que je cherche à afficher une image dans un qtablewidget en modifiant la couleur des cellules une par une. Je sais que les qtablewidget ne sont pas très vivaces, mais là je pense qu'on peut faire quelque chose au niveau de mon code. Voici l'existant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #RGB data creation using map function
    RGBAs = list(map(lambda x: cmap(norm(x)), data[:, :]))
     
    #Modify cell color
    for i in range(l):
        for j in range(h): #cell management, one by one...          
            self.tab.setItem(i,j,QTableWidgetItem())
            self.tab.item(i,j).setBackground(QBrush(QColor(RGBAs[i][j][0] * 255, RGBAs[i][j][1] * 255, RGBAs[i][j][2] * 255, RGBAs[i][j][3] * 255)))
    Là dessus j'ai des questions:
    1) est-ce qu'on peut éviter de faire un setItem pour chaque item et directement faire un setItem pour tous les item, ça ferait gagner du temps.
    2) au lieu d'utiliser une double boucle i/j pour agir sur chaque cellule je pensais utiliser une fonction lambda du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    map(lambda R,G,B,A: self.tab.item(i,j).setBackground(R,G,B,A), RGBAs[i][j][0] * 255, RGBAs[i][j][1] * 255, RGBAs[i][j][2] * 255, RGBAs[i][j][3] * 255)
    mais j'ai le problème du "item(i,j)" que je ne connais pas. Existe-t-il un autre moyen plus matriciel d'écrire ces données ?

    3) ça je n'ai jamais fait, mais pour rigoler, est-ce qu'il serait possible de faire en muli thread pour gagner encore plus de temps ? Je serai curieux de voir la différence de performance par rapport à la double boucle for.

    merci pour votre aide!
    Lelorrain

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Pour aller vite, il faut faire faire les opérations sur des tableaux/matrices par des bibliothèques qui savent faire cela et dont nombre d'opérations ont été optimisées (écrites en C).

    Citation Envoyé par lelorrain7
    3) ça je n'ai jamais fait, mais pour rigoler, est-ce qu'il serait possible de faire en muli thread pour gagner encore plus de temps ? Je serai curieux de voir la différence de performance par rapport à la double boucle for.
    A partir du moment où on sait partitionner le travail à effectuer, on peut imaginer une exécution en parallèle. Pour ce qui est de gagner du temps, çà se teste (et le mieux n'est pas toujours là).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. gerer le temps d'affichage d'une tooltip
    Par monmiez dans le forum VB.NET
    Réponses: 0
    Dernier message: 26/11/2008, 15h48
  2. Temps d'affichage d'une infobulle
    Par deruyter dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/05/2007, 23h58
  3. [ToolTip] temps d'affichage d'une infobulle
    Par RR instinct dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 10/10/2006, 10h48
  4. temps d'affichage d'une image
    Par Darkyl dans le forum Delphi
    Réponses: 6
    Dernier message: 17/07/2006, 18h28
  5. [SQL] mesurer le temps d'affichage d'une page
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 23/06/2006, 17h03

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