QTCreator: application QT-avecwidget: accès librairies standard?
Répondre à la discussion
Affichage des résultats 1 à 27 sur 27

QTCreator: application QT-avecwidget: accès librairies standard?



  1. #1
    Bounoume

    QTCreator: application QT-avecwidget: accès librairies standard?


    ------

    Bonjour,
    je recommence en C et C++ ..... après + de 10 ans d'arrêt! C'était Borland C++ sous ....DOS ou Win 3.1 !!!!
    Sur Ubuntu, j'ai installé la suite QT...
    Démarré avec QTCreator, un projet QT avec Widget et C++
    En cours d'écriture de fichier .cpp ou .h, je voudrais inclure ce dont j'avais l'habitude (même si c'est du C ordinaire)
    Comment faire appel aux librairies standard comme <stdio.h> <string.h> etc par un #include? ....... et retrouver la liste des types et fonctions supportées?
    [introuvables dans les fichiers système ( usr/lib par exemple...)]

    Et puis ensuite, où trouver un tutorial élémentaire pour créer, dans une fenêtre, des conteneurs de textes éditables,
    et les relier au code déjà commencé.. ?
    merci d'avance

    -----
    rien ne sert de penser, il faut réfléchir avant.... (Pierre Dac...)

  2. #2
    Jack
    Modérateur

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    il est toujours possible d'inclure les fichiers d'entête de la librairie standard du C, quoiqu'il est davantage recommandé d'inclure les versions adaptées au C++.
    par exemple, au lieu d'inclure stdio.h, préférer cstdio.
    Un aperçu de la clib ici.

    Mais avec Qt, autant rester sur les librairies fournies qui proposent les mêmes fonctionnalités.

    Je ne suis pas fan des tutos vidéo, mais ceux-ci sont bien foutus et sont très exhaustifs en balayant tous les aspects de Qt. Même si on n'est pas très à l'aise avec l'anglais, ça se suit très bien.

  3. #3
    inviteb9f49292

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    Sur Ubuntu, j'ai installé la suite QT...
    Comme l'a déjà dit Jack, utiliser l'interface Qt est à préférée par rapport à utiliser la sortie standard C++, qui doit être préférée à l'utilisation de l'interface C (et il est d'ailleurs très fortement déconseillé de mélanger les accès C et C++ sur un même fichier).

    Ceci dit, je suis assez étonné que les chemins d'inclusions standards soient cassés sous linux, tu as bien installé tout ça par le gestionnaire de paquetage d'UBUNTU ?
    Pour info, les en-têtes systèmes se trouve dans le répertoire "/usr/include", sauf pour la compilation croisée (où ils sont en général dans un sous-dossier du compilateur).

  4. #4
    Bounoume

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    Je cherchais les fichiers d'en-tête dans usr/lib, et comme il y a l'entrée usr/lib/gcc ..... et dedans quelques fichiers en .h (mais pas la librairie standard C comme stdio ou stdlib ....je n'y comprenais plus rien.....
    Évidemment j'avais zappé usr/include !!!!!
    maintenant que tu me l'as fait trouver, j'y découvre par exemple cstdio (nom de fichier sans le '.h' : pourquoi ?) .... qui dit par exemple être l'implémentation du stdio classique: je vais essayer!
    rien ne sert de penser, il faut réfléchir avant.... (Pierre Dac...)

  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    les noms de fichiers d'entête de la librairie standard du C++ n'ont plus d'extension.

  7. #6
    pm42

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    Comme déjà dit, il vaut mieux utiliser les classes et fonctions Qt : QString pour les chaines, qdebug pour afficher sur la console, etc.

  8. #7
    Bounoume

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    Merci, ça marche!
    Mais le bourrin,maintenant, faut lui dire maintenant:
    "#include cstdio"
    le vieille syntaxe:
    "#include <cstdio.h>" c'est refusé.
    Les traditions se perdent....
    rien ne sert de penser, il faut réfléchir avant.... (Pierre Dac...)

  9. #8
    pm42

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    Citation Envoyé par Bounoume Voir le message
    Les traditions se perdent....
    Non, les normes évoluent.

  10. #9
    Jack
    Modérateur

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    Citation Envoyé par Bounoume Voir le message
    Merci, ça marche!
    Mais le bourrin,maintenant, faut lui dire maintenant:
    "#include cstdio"
    le vieille syntaxe:
    "#include <cstdio.h>" c'est refusé.
    Les traditions se perdent....
    Si tu ouvres cstdio, tu verras qu'il inclut stdio.h entre-autres

  11. #10
    Bounoume

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    exact,
    il me semble même que l'éditeur interactif de QTCreator accepte la syntaxe
    "#include stdio.h"
    c'est à dire simplement sans les "<" " >"
    mais je vais bien me garder de faire le mélange des anciens en-têtes et des versions actuelles....
    ce seront les entêtes commençant par C.....

    pendant que j'ai votre attention, encore une question:
    comment implémenter 2 threads (il y a longtemps je connaissais if (fork()) then {....} else {....}
    Bien sûr faudra qu' un des threads puisse arrêter le déroulement de l'autre, y lire/écrire des valeurs, puis le laisser repartir (ou le fermer définitivement si besoin)
    Que me conseillez-vous?
    rien ne sert de penser, il faut réfléchir avant.... (Pierre Dac...)

  12. #11
    Jack
    Modérateur

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    il me semble même que l'éditeur interactif de QTCreator accepte la syntaxe
    "#include stdio.h"
    c'est à dire simplement sans les "<" " >"
    Les guillemets sont mal placés.

    Sinon, en principe utiliser des guillemets ou < > n'a pas la même signification au niveau de la localisation des fichiers d'entête.

    Pour les threads, même discours, Qt possède une classe QThread, mais il est toujours possible d'utiliser celle de la bibliothèque standard qui est std::thread

  13. #12
    Bounoume

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    Citation Envoyé par lou_ibmix_xi Voir le message
    Ceci dit, je suis assez étonné que les chemins d'inclusions standards soient cassés sous linux, tu as bien installé tout ça par le gestionnaire de paquetage d'UBUNTU ?
    pour ce détail, oui, ça a été installé par synaptik (donc indirectement par apt-get ...)
    maintenant, avec vos infos, j'accède aux en-têtes OK, mais il persiste un tout petit os:
    pas moyen d'accéder aux "exemples" directement depuis la page d'accueil de QTCreator..... alors qu'ils sont bien dans /usr/lib/qt4/examples/.....le_repertoire_exemple1... ., et que je peux les ouvrir comme "projet" courant. 1 ligne erronée dans un fichier de config? agaçant, mais pas bien grave !
    rien ne sert de penser, il faut réfléchir avant.... (Pierre Dac...)

  14. #13
    Bounoume

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    Citation Envoyé par Jack Voir le message
    Les guillemets sont mal placés.
    Sinon, en principe utiliser des guillemets ou < > n'a pas la même signification au niveau de la localisation des fichiers d'entête.

    les guillemets, c'était pour faire joli dans le post, pour imiter bêtement l'aspect d'une constante chaîne de caractères qu'on initialise .
    Bien sûr que je ne les mettais pas dans le texte pour QT

    Citation Envoyé par Jack Voir le message
    Pour les threads, même discours, Qt possède une classe QThread, mais il est toujours possible d'utiliser celle de la bibliothèque standard qui est std::thread
    .
    Merci, mais avec std::thread, comment on peut faire -si c'est possible- pour que l'une des fonctions puisse interrompre (à un endroit précis, ou comme une vraie interruption ou exception) le déroulement de l'autre.... et alors accéder à certaines de ses variables?
    rien ne sert de penser, il faut réfléchir avant.... (Pierre Dac...)

  15. #14
    Jack
    Modérateur

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    pas moyen d'accéder aux "exemples" directement depuis la page d'accueil de QTCreator..... alors qu'ils sont bien dans /usr/lib/qt4/examples/
    Tu m'inquiètes, là. Qt4???? On en est au moins à Qt5.10.
    Tu aurais dû utiliser le gestionnaire d'installation de Qt (Qt maintenance tool) pour obtenir la version la plus récente.

    Merci, mais avec std::thread, comment on peut faire -si c'est possible- pour que l'une des fonctions puisse interrompre (à un endroit précis, ou comme une vraie interruption ou exception) ...
    Je ne comprends pas: le propre d'une interruption est justement d'interrompre n'importe où dans le code et pas à un endroit précis.

    et alors accéder à certaines de ses variables?
    Les threads permettent l'exécution de codes concurrents au sein d'un même processus, et donc d'un même programme, ce qui permet de partager par principe des variable globales.

  16. #15
    Bounoume

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    pour ce qui est de QT, j'ai lancé l'installaion avec l'utilitaire de Ubuntu (synaptik, basé sur apt-get).... qui va chercher les paquets tout configurés sur un serveur officiel Ubuntu ; j'ai cru comprendre que sur ce(s) serveur(s) il y a seulement la version 14... à cause d'une histoire de changement dans les propriétaires/bébéficiaires/maintenance etc du dit QT

    par principe je préfère prendre sur les dépôts officiels Ubuntu...... quand c'est possible....
    rien ne sert de penser, il faut réfléchir avant.... (Pierre Dac...)

  17. #16
    inviteb9f49292

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    avec ubuntu 18.04, j'ai accès aux Qt v3, 4 et 5, et le paquet qtbase-5 examples n'était pas tiré à l'installation de qtdevelop...
    Qt est le genre de paquets tentaculaires qu'il vaut mieux installer par les pseudo-paquets proposés.

  18. #17
    inviteb9f49292

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    Citation Envoyé par lou_ibmix_xi Voir le message
    avec ubuntu 18.04, j'ai accès aux Qt v3, 4 et 5, et le paquet qtbase-5 examples n'était pas tiré à l'installation de qtdevelop...
    Qt est le genre de paquets tentaculaires qu'il vaut mieux installer par les pseudo-paquets proposés.
    1er essais, pas d'exemples non plus, alors que les info systèmes de Qt-Creator indiquent le bon dossier "/usr/lib/x86_64-linux-gnu/qt5/examples"...
    Il ne trouve pas tous seul qmake!

    Je crois qu'il faut sélectionner la version avec qtchooser d'abord. Ou installer Qt4.

  19. #18
    inviteb9f49292

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    Alors, il faut installer le paquet qt5-qmake (bizarre qu'il ne soit pas tiré). Et configurer la version de Qt à utiliser. Définir la variable "QT_SELECT=qt5" fonctionne, je ne sais pas s'il y a plus simple.
    Toujours pas d'exemples...

  20. #19
    Bounoume

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    Citation Envoyé par lou_ibmix_xi Voir le message
    1er essais, pas d'exemples non plus, alors que les info systèmes de Qt-Creator indiquent le bon dossier "/usr/lib/x86_64-linux-gnu/qt5/examples"...
    Il ne trouve pas tous seul qmake!

    Je crois qu'il faut sélectionner la version avec qtchooser d'abord. Ou installer Qt4.
    je suis encore en version 16.04 LTS: le about de qtCereator dit 'basé sur QT V.51.....qtDesigner se dit basé sur 4.87 .... alors je ne sais plus.....
    dans usr/share il y a un répertoire QT4, et un QT5 ...... mais il n'y a des executables que dans usr/share/qt4/bin
    et les exemples (et les demos...) sont dans /usr/lib/examples.......

    peut être qu'il y a 1 chose qui coïnce: ces répertoires sont propriété de root..... si QT veut y écrire, il va se faire jeter comme un malpropre.....

    Pour info, peux-tu me dire ans quels fichiers doivent se trouver les configurations ? /usr/share/qtchooser ? autre?
    je crois qu'il existe un utilitaire pour configurer QT..... mais je ne le trouve pas.....
    merci d'avance
    rien ne sert de penser, il faut réfléchir avant.... (Pierre Dac...)

  21. #20
    Jack
    Modérateur

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    J'ai installé Qt en commençant par télécharger l'online installer" sur le site d'origine, ce qui me semble le plus naturel. Bon c'était pour une debian, mais l'online installer n'est pas limité à une seule versions de linux.
    Ca permet de personnaliser son installation et de pouvoir toujours être à jour.

  22. #21
    inviteb9f49292

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    Citation Envoyé par Bounoume Voir le message
    je suis encore en version 16.04 LTS: le about de qtCereator dit 'basé sur QT V.51.....qtDesigner se dit basé sur 4.87 .... alors je ne sais plus.....
    dans usr/share il y a un répertoire QT4, et un QT5 ...... mais il n'y a des executables que dans usr/share/qt4/bin
    et les exemples (et les demos...) sont dans /usr/lib/examples.......
    J'imagine du coup que tu n'a pas installé les "development-tools" de Qt5, juste les bibliothèques.

    peut être qu'il y a 1 chose qui coïnce: ces répertoires sont propriété de root..... si QT veut y écrire, il va se faire jeter comme un malpropre.....
    Tu as raison, ce détail m'a échappé, il faudra effectivement copier-coller les exemples que tu veux pouvoir compiler dans une zone où tu accès en écriture (ou donner les droits sur les dossiers d'exemples)

    Pour info, peux-tu me dire ans quels fichiers doivent se trouver les configurations ? /usr/share/qtchooser ? autre?
    je crois qu'il existe un utilitaire pour configurer QT..... mais je ne le trouve pas.....
    merci d'avance
    J'ai l'impression que c'est plutôt des variables d'environnement que des fichiers... et qtchooser est probablement le suspect idéal... Je ne peux pas t'en dire plus, suis sous windows au boulot (et pas sûr de pouvoir repasser par ici durant les prochains jours)

  23. #22
    inviteb9f49292

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    Citation Envoyé par Jack Voir le message
    J'ai installé Qt en commençant par télécharger l'online installer" sur le site d'origine, ce qui me semble le plus naturel. Bon c'était pour une debian, mais l'online installer n'est pas limité à une seule versions de linux.
    Ca permet de personnaliser son installation et de pouvoir toujours être à jour.
    Je mettrais le "disclaimer" d'usage. Il faut toujours passer par le gestionnaire de paquet de la distribution, sauf quand il ne faut pas...
    Il n'est effectivement pas rare d'avoir besoin de la toute dernière version de Qt ou du compilateur ARM, pas dispo dans les dépôts officiels, alors farfouiller s'il existe un dépôt un peu sérieux à ajouter avant d'utiliser la méthode d'installation "à la windows" depuis le site du fournisseur.

  24. #23
    Jack
    Modérateur

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    Le problème avec debian, quoique ça ait tendance à bouger, c'est qu'ils sont toujours "un peu" en retard au niveau des versions.

    En tout cas, je n'ai pas rencontré de problème induit par cette install de Qt. Je suppose qu'il savent ce qu'ils font et qu'ils oeuvrent dans les règles.

  25. #24
    inviteb9f49292

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    Citation Envoyé par Jack Voir le message
    Le problème avec debian, quoique ça ait tendance à bouger, c'est qu'ils sont toujours "un peu" en retard au niveau des versions.
    Sûr, c'est pire avec debian, et pire encore avec debian stable! Le prix de la stabilité...

    En tout cas, je n'ai pas rencontré de problème induit par cette install de Qt. Je suppose qu'il savent ce qu'ils font et qu'ils oeuvrent dans les règles.
    A mon avis, ce n'est pas tant pour l'appli installée que c'est une pratique déconseillée, mais plus côté OS, les bibliothèques installées avec l'appli peuvent venir en conflit avec des bibliothèques déjà présente sur le système (version, flags de compilation...).
    Si possible, installer ce type d'appli sans les droits administrateurs, tu es à priori sûr de ne rien casser.

  26. #25
    Jack
    Modérateur

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    Citation Envoyé par lou_ibmix_xi Voir le message
    Si possible, installer ce type d'appli sans les droits administrateurs, tu es à priori sûr de ne rien casser.
    De mémoire, c'est le cas.

  27. #26
    Bounoume

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    Citation Envoyé par lou_ibmix_xi Voir le message
    Si possible, installer ce type d'appli sans les droits administrateurs, tu es à priori sûr de ne rien casser.
    ça, pas possible avec synaptic (ou apt-get): ils demande(nt) toujours les droits administrateur.... et comme faut installer dans /lib ou /usr/lib il les faut aussi...

    Pour le reste, les exemples, il y en a dans QTAssistant..... en allant dans l'onglet 'sommaire'.
    Les petits exemples 'calculator' sont un début....
    rien ne sert de penser, il faut réfléchir avant.... (Pierre Dac...)

  28. #27
    Jack
    Modérateur

    Re : QTCreator: application QT-avecwidget: accès librairies standard?

    Citation Envoyé par Bounoume Voir le message
    ça, pas possible avec synaptic (ou apt-get): ils demande(nt) toujours les droits administrateur.... et comme faut installer dans /lib ou /usr/lib il les faut aussi...
    Avec l'installeur, pas besoin de synaptic ou apt, ni besoin de droits d'administrateur: Qt s'installe dans le home directory.

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/05/2017, 11h08
  2. Réponses: 3
    Dernier message: 26/05/2016, 13h52
  3. Démineur sur QTcreator
    Par invite7ffb76bd dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 24/10/2015, 00h59
  4. Problème affichage avec Qtcréator
    Par foudefoot dans le forum Programmation et langages, Algorithmique
    Réponses: 13
    Dernier message: 23/06/2014, 00h09
  5. Réponses: 1
    Dernier message: 21/11/2013, 22h53