0
votes

QTableWidget ResizerowstoStocontents très lents

J'ai un QTableWidget contenant plus de 200 000 lignes et 8 colonnes. Les colonnes ont une taille fixe. Les rangées ont une taille variable. Ajouter les éléments à la table est rapide (quelques secondes).

Ensuite, l'appel de Resizerowstocontents () prend presque 60/120 secondes! Je vois que cet appel est un seul fil! (Un seul travail de base). Puis-je forcer la multithreading? Comment puis-je accélérer la ligne de résolution de la ligne?

merci, Salvo


0 commentaires

3 Réponses :


0
votes

Redimensionnement doit recalculer, chaque rangée hard et ajuster. Je ne recommanderais pas d'avoir ces nombreuses lignes dans un seul QTableWidget. J'irais pour une technique de pagination ou une fonctionnalité de chargement dynamique pour cette longue liste.


0 commentaires

0
votes

Une chose que vous pourriez essayer est de mettre à jour le qtablaphget code> rangée à ligne en utilisant QTableWidget :: restifizerowtocontents code> (Remarque: ligne code> plutôt que lignes code>) avec les mises à jour étant entrelacées avec d'autres événements dans la file d'attente. Globalement, le processus prendrait toujours le même temps, mais votre interface graphique resterait réactif pendant le processus.

Premièrement, profitez du fait qu'un Qticer code> avec un délai d'attente zéro émitera son signal de délai d'attente chaque fois que la file d'attente de l'événement devient vide. Donc, tel que ... p> xxx pré>

attendra efficacement jusqu'à ce que la file d'attente d'événement soit vide, puis invoquer my_callback code>. Si my_callback code> appelle la même ligne de code, vous disposez d'une fonction qui vous invoque automatiquement au cours de la prochaine période d'inactivité. P>

Ecrivez maintenant la fonction ... P>

QTimer::singleShot(0, [table_widget, row = 0](){ resize_row(table_widget, row, 10); });


0 commentaires

0
votes

Si vous voulez plus de vitesse, utilisez QabstractTableModel au lieu de QTableWidget et remplacez les fonctions requises. C'est un exemple simple et bon: https://doc.qt.io/qt-5/modelview.htmlled/a >


0 commentaires