QTableView avec des icônes de lignes
J'ai un QTableView
montrant les lignes d'une table de base de données. Dans cette table j'ai une colonne de type de données appelé et j'ai des images de l'icône pour chaque type. Comment puis-je ajouter ces icônes en face de chaque type de données?
Voici une partie de mon code comme demandé par justanothercoder.
QString msgQueryString = "select MESSAGE_ID, DATA_TYPE from SER_MESSAGES where MESSAGE_ID > 500 ";
serendibMsgTableModel->setQuery(msgQueryString, *database);
serendibMsgTableModel->setHeaderData(0, Qt::Horizontal, tr("Message ID"));
serendibMsgTableModel->setHeaderData(1, Qt::Horizontal, tr("Data Type"));
serendibMsgProxyModel->setSourceModel(serendibMsgTableModel);
serendibMsgView->setModel(serendibMsgProxyModel);
"serendibMsgTableModel" est un QSqlQueryModel
et "serendibMsgProxyModel" est une mesure QSortFilterProxyModel
. "serendibMsgView" est le QTableView
j'ai besoin d'icônes à afficher, dans la colonne Type de Données.
Espère que cette aide pour votre réponse.
OriginalL'auteur kasper360 | 2011-04-04
Vous devez vous connecter pour publier un commentaire.
Définir la DecorationRole de vos articles à la QPixmap vous voulez et cela devrait fonctionner.
edit:
Je suppose que l'icône dépend de la valeur dans la colonne type de données.
Quelque chose comme cela devrait fonctionner.
Définir les valeurs avant setModel.
Je ne l'ai pas testé, mais je pense que vous devriez l'obtenir à l'idée de cette.
Je suis un peu ignorant de par où commencer, vous avez besoin d'ajouter un peu plus de description de ce que vous avez fait. L'ajout de code source pour la question pourrait être la bonne.
J'ai modifié la question d'origine et ajouté un extrait de code.
Merci u beaucoup justanothercoder. Je vais essayer ce n soit u savoir comment ça s'est passé. 🙂
OriginalL'auteur 0xbaadf00d
J'ai vu que vous avez déjà choisi une réponse, mais puisque vous êtes l'apprentissage de Qt, je vais ajouter quelques choses.
De prendre un coup d'oeil à l'excellente documentation de Qt, je vous suggère de le remplacer dans votre modèle:
Il existe différents rôles (int rôle = Qt::DisplayRole):
Donc, ce que vous devez faire est de retourner un QIcon ou QPixmap dans la fonction data() pour la DisplayRole.
Une autre approche qui pourrait être plus approprié est de faire usage de délégués: Par exemple ColorListEditor
Le cite: "Donc, ce que vous devez faire est de retourner un QIcon ou QPixmap dans la fonction data() pour la DisplayRole." ... tu veux dire
DisplayRole
ouDecorationRole
?OriginalL'auteur Derick Schoonbee