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 :

[Qt 4.4.3 Win]Qt et Qwt en dynamique

  1. #1
    Membre expérimenté Avatar de cayou66
    Inscrit en
    Décembre 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Décembre 2008
    Messages : 286
    Par défaut [Qt 4.4.3 Win]Qt et Qwt en dynamique
    Bonjour à tous et à toutes,
    je tiens d'abord à féliciter le forum Qt car j'ai déjà trouvé pas mal de réponses à mes problèmes de développement.
    Voici mon souci du jour :
    je souhaite utiliser dynamiquement des fichier .ui en utilisant la classe QUiLoader ce qui me permettrais d'ouvrir des fichier .ui dans mon programme.
    Pour tester, je crée un widget "classique" sous Qt designer, l'enregistre et l'ouvre avec mon programme. Aucun souci de ce côté là. Là où ça se corse, c'est que j'ai envie d'utiliser les widget de Qwt. J'en arrive à un stade où je peux ouvrir "statiquement" les fichier .ui contenant des widget Qwt sans problème (en utilisant la méthode du tutoriel Qt ). J'ai pallié aux problèmes de fichier .pro, des lien entre Qwt et Qt etc etc...Lors de l'ouverture du fichier .ui avec QUiLoader si je mélange widget Qt et widget Qwt seul ceux de Qt sont affichés dans mon layout.

    PS: je peux fournir si besoin des extraits de code.

    Si quelqu'un connait une piste, ou une partie de réponse n'hésitez pas

    Merci par avance, en vous souhaitant une bonne après midi.

  2. #2
    Membre expérimenté Avatar de cayou66
    Inscrit en
    Décembre 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Décembre 2008
    Messages : 286
    Par défaut Peut être que...
    j'ai un début de réponse, une piste :
    j'ai vu que sur la doc de QUiLoader il existe une classe availableWidgets().

    Peut être faut-il ajouter les widget Qwt avec cette classe?

    Ou bien addPluginPath()?

    Edit : après avoir ajouté le répertoire contenant les dll, ça ne change rien.
    La liste des widget acceptés par QUiLoader (avec availableWidgets() ) n'évolue pas.

  3. #3
    Membre expérimenté Avatar de cayou66
    Inscrit en
    Décembre 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Décembre 2008
    Messages : 286
    Par défaut ...
    Personne n'a d'idée?

    Je m'intéresse aussi à QFormBuilder qui pourrait m'aider, mais je me perd dans la doc, si quelqu'un sait comment cela fonctionne (QFormBuilder::customWidgets() entre autres).

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Salut,
    tu n'arrive pas à créé des widget de qwt par uiloader c'est cela?
    AS tu essayer de jouer avec http://qt.developpez.com/doc/4.4/qui...#addpluginpath

  5. #5
    Membre expérimenté Avatar de cayou66
    Inscrit en
    Décembre 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Décembre 2008
    Messages : 286
    Par défaut
    Merci tout d'abord pour ta réponse.

    Pour QUiLoader il existe comme j'ai mentionné plus haut plusieurs méthodes qui permettent de lui dire d'ajouter des plugin "personnalisés".

    addPluginPath() ;

    load() ; etc...

    Voici comment je procède :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    	QUiLoader builder;
    	builder.addPluginPath(path);
    	QStringList path = builder.availableWidgets(); // Pour connaître la liste des widgets acceptés
    	QStringListModel *modele = new QStringListModel(nom);
    	QListView *vue = new QListView;
            vue->setModel(modele);
    
    	QFile file;
    	file.setFileName(fichier);
    	
    	file.open(QIODevice::ReadWrite);
    	if(file.error() == QFile::NoError)
    	{
    		QWidget *myWidget = builder.load(&file, this);
    		file.close();
    
    		QVBoxLayout *layout = new QVBoxLayout;
    		layout->addWidget(myWidget);//myWidget/vue -> au choix.
    
    		setLayout(layout);
    	}
    Je fais ça dans une QMainWindow dans le centre de la fenêtre (QMdiArea() ).

    Cela coince bien au niveau de QUiLoader puisque la liste affichée (availableWidgets() )ne contient pas les widgets de Qwt.

    Je précise que le plugin Qwt m'a l'air d'être bien installé (je peux me tromper) étant donné que les widgets se trouvent dans Qt designer et que je peux les utiliser "en dur" en appelant les méthodes des widgets de Qwt.


    Je cherche du côté de QFormBuilder(), mais j'avais l'impression qu'il faisait l'inverse de QUiLoader()...

    Edit: j'ai vraiment essayé tout les path possibles et inimaginables, sans résultat.

  6. #6
    Membre expérimenté Avatar de cayou66
    Inscrit en
    Décembre 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Décembre 2008
    Messages : 286
    Par défaut
    J'ai trouvé !
    C'est bien ce que tu disais, il fallait jouer avec QUiLoader.

    Avant d'ajouter un path de recherche de plugin, il faut supprimer les path par défauts avec clearPluginPaths(). Et magie, ça fonctionne

    Merci bien, en te souhaitant une bonne journée.

  7. #7
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Salut
    Citation Envoyé par cayou66 Voir le message
    J'ai trouvé !
    C'est bien ce que tu disais, il fallait jouer avec QUiLoader.

    Avant d'ajouter un path de recherche de plugin, il faut supprimer les path par défauts avec clearPluginPaths(). Et magie, ça fonctionne

    Merci bien, en te souhaitant une bonne journée.
    Je sais qu'il y as parfois des problème avec qwt et le designer sous windows. Il faut mettre a jour quelque chose dans la base de donné . C'est peut être lié..
    Merci pour la solution.

    Ps : tu devrais regarder http://qt.developpez.com/gadget-webkit/. Il utilise aussi le .ui avec QUILoader et ensuite QScript pour le code de l'ihm

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

Discussions similaires

  1. IB 6.0.1 - Win XP - Character Set
    Par SuperTotor dans le forum InterBase
    Réponses: 4
    Dernier message: 03/06/2003, 20h25
  2. Problème montage partition Win sous RedHat ??
    Par baba dans le forum Administration système
    Réponses: 6
    Dernier message: 18/01/2003, 11h26
  3. Quel outil pour du développement Client/Serveur (Win XP) ?
    Par jey_bonnet dans le forum Débats sur le développement - Le Best Of
    Réponses: 5
    Dernier message: 02/11/2002, 14h57
  4. Réseau Win/Linux
    Par ben91 dans le forum Développement
    Réponses: 2
    Dernier message: 08/09/2002, 22h59
  5. webcam : lire sur un port usb en c/c++ ou java. sous win. ?
    Par flo007 dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 24/05/2002, 23h24

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