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

Discussion :

[Qt4-Win] personnaliser QTableView

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 65
    Par défaut [Qt4-Win] personnaliser QTableView
    Bonjour à tous

    Actuellement j'utilise un QTableView pour représenter un QSqlQueryModel de la manière suivante (pour faire simple):

    .h
    QSqlQueryModel *model;
    QTableView *view;

    .cpp
    model->setQuery("SELECT ent_nom, ent_tel, ent_site, ent_rue, ent_cp, ent_ville FROM entreprise");
    model->setHeaderData(0, Qt::Horizontal,"Nom");
    model->setHeaderData(1, Qt::Horizontal, "Téléphone");
    model->setHeaderData(2, Qt::Horizontal, "Site Web");
    model->setHeaderData(3, Qt::Horizontal, "Rue");
    model->setHeaderData(4, Qt::Horizontal, "Code Postal");
    model->setHeaderData(5, Qt::Horizontal, "Ville");

    view->setModel(model);

    Cela me donne une sorte de tableau :



    Mon problème est qu'il permet trop de chose (selections multiples...)
    J'aimerais donc :
    - Selectionner la ligne entière lorsqu'on clique sur une celulle
    - Interdire les selections multiples avec la touche CTRL
    - Interdire la selection de colonne entiere (en cliquant sur les intitulés du haut)
    - Interdire la selection de ligne entière en cliquant sur les n° de gauche, et si possible supprimer carrément ces chiffre puisqu'il me sont pas utiles

    D'autres question en vrac :
    - Comment recuperer la selection courante ?
    - Comment faire pour gerer le tri dans les colonnes, j'ai vu que setSortingEnabled (true); permet de rajouter des puces dans les intitulé de champs, mais sans traitement derriere, faut t'il tout faire à la main ?

    Merci pour le temps que vous me consacré ++

    ps: j'ai poster ce msg sur d'autres forums

  2. #2
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 65
    Par défaut
    Voilà la solution à une partie du problème

    model->setQuery("SELECT * FROM entreprise");
    model->setHeaderData(1, Qt::Horizontal,"Nom");
    model->setHeaderData(2, Qt::Horizontal, "Téléphone");
    model->setHeaderData(3, Qt::Horizontal, "Site Web");
    model->setHeaderData(4, Qt::Horizontal, "Rue");
    model->setHeaderData(5, Qt::Horizontal, "Code Postal");
    model->setHeaderData(6, Qt::Horizontal, "Ville");


    view->setModel(model);
    view->hideColumn(0); // pour cacher le champ ent_id de la table mysql

    view->verticalHeader()->hide(); // pour cacher les chiffres intitulé de ligne
    view->setSelectionBehavior(QAbstractItemView::SelectRows); // pour que les selections se fasse en ligne
    view->setSelectionMode(QAbstractItemView::SingleSelection); // pour eviter la multi selection


    maintenant si vous savez comment recuperer la selection courante de la vue..

Discussions similaires

  1. [Qt4-Win] Connect (SIGNAL/SLOT)
    Par mikemarti dans le forum Débuter
    Réponses: 5
    Dernier message: 20/06/2008, 02h05
  2. Réponses: 2
    Dernier message: 15/03/2007, 12h10
  3. Réponses: 1
    Dernier message: 22/09/2006, 10h55

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