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

GTK+ avec C & C++ Discussion :

create_pango_layout not declared. Problème de version de gtk ?


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 114
    Par défaut create_pango_layout not declared. Problème de version de gtk ?
    Bonjour,
    je développe sous raspbian, gtkmm (version 2.xx), c++

    j'ai crée une drawing area et un contexte context , j'y trace différents objets avec succès.

    je veux y intégrer du texte.
    je veux m'inspirer de cela:
    https://developer.gnome.org/gtkmm-tu...g-text.html.en

    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    void graph::afficheLabels (void){
    Pango::FontDescription font;
    font.set_family("Monospace");
    font.set_weight(Pango::WEIGHT_BOLD);
    auto layout create_pango_layout("Hello");
    layout->set_font_description(font);
    context->move_to(20;20)
    layout->show_in_cairo_context(context)
    }
    la compil me retourne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'create_pango_layout' was not declared in this scope
    au début du fichier, j'ai pour include:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <gtkmm.h>
    #include <pangomm.h>
    soit je n'inclue pas les bonnes lib, soit le create_pango_layout n'existe pas sur ma version de gtkmm, soit ...

    Y a-t-il un équivalent sur les versions précédentes?
    Où avez-vous un exemple pour afficher un texte dans une drawing area pour du gtkmm 2.xx ?
    Ou autres conseils .....

    Merci, bonne journée

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 114
    Par défaut
    et ben zut,
    je viens de réaliser que je croyais tourner sur gtk3 (par ce que j'utilise opencv3 qui s'appuie sur gtk 3, ey non gtk 2.

    j'ai bien des biblio gtkmm-3.0 dans mon dossier /usr/include (normalement cohabitant sans soucis avec gtkmm-2.4)
    j'ai aussi les biblio pangomm-1.4

    mais, dans mon projet sous code::blocks, quand je fais un #include <gtkmm
    il est vrai que l'autocomplétion ne me propose que du 2.4, pas le 3.0
    et pourtant dans les options de de compil:
    'pkg-config gtkmm-3.0 --cflags'
    et dans le linker settings:
    'pkg-config gtkmm-3.0 --libs'

    Je m'y étais déjà perdu il y a qq semaines, pas très à l'aise avec les options de linkage de manière générale, mais là avec la cohabitation de 2 versions, et je suis à nouveau perdu.

    J'ai l'impression de bosser avec gtkmm3.0, pangomm1.4, mais la fonction create_pango_layout n'est pas définie!

    Une idée pour me sortir de la semoule?

  3. #3
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Par défaut
    Bonjour,

    je ne connais pas trop GTKmm, ni C++11, mais à la place de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    auto layout create_pango_layout("Hello");
    ce ne serait pas plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    auto layout = create_pango_layout("Hello");
    ?

    Au passage, opencv 3.x ne dépend pas forcément de GTK+ 3, cela dépend de comment il a été compilé. Il gère GTK+ 2, GTK+ 3, et Qt comme backends.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 114
    Par défaut
    oui, tout à fait, il faut le " = "
    Je n'ai pas pu faire un copier coller alors en retapant les lignes de code j'ai commis cette faute (et peut-être d'autres d'ailleurs)

    ok pour opencv,

    mais je dois tout de même pouvoir inclure le create_pango_layout d'une façon ou d'une autre

    Merci pour ta réponse

  5. #5
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 605
    Par défaut
    J'ai un projet code::blocks utilisant gtk3. Tu peux regarder pour comparer les options : http://troumad.org/Mes_regles/perso4_1.zip

    je te conseille aussi de créer un makefile pour tester sans code::blocks. Ils sont aussi dans ma sauvegarde.
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 114
    Par défaut
    Salut,
    liberforce j'ai installé opencv comme ceci:
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    ######################################
    # INSTALL OPENCV ON UBUNTU OR DEBIAN #
    ######################################
     
    # |         THIS SCRIPT IS TESTED CORRECTLY ON         |
    # |----------------------------------------------------|
    # | OS             | OpenCV       | Test | Last test   |
    # |----------------|--------------|------|-------------|
    # | Ubuntu 16.04.2 | OpenCV 3.2.0 | OK   | 20 May 2017 |
    # | Debian 8.8     | OpenCV 3.2.0 | OK   | 20 May 2017 |
    # | Debian 9.0     | OpenCV 3.2.0 | OK   | 25 Jun 2017 |
     
    # 1. KEEP UBUNTU OR DEBIAN UP TO DATE
     
    sudo apt-get -y update
    sudo apt-get -y upgrade
    sudo apt-get -y dist-upgrade
    sudo apt-get -y autoremove
     
     
    # 2. INSTALL THE DEPENDENCIES
     
    # Build tools:
    sudo apt-get install -y build-essential cmake
     
    # GUI (if you want to use GTK instead of Qt, replace 'qt5-default' with 'libgtkglext1-dev' and remove '-DWITH_QT=ON' option in CMake):
    sudo apt-get install -y qt5-default libvtk6-dev
     
    # Media I/O:
    sudo apt-get install -y zlib1g-dev libjpeg-dev libwebp-dev libpng-dev libtiff5-dev libjasper-dev libopenexr-dev libgdal-dev
     
    # Video I/O:
    sudo apt-get install -y libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev yasm libopencore-amrnb-dev libopencore-amrwb-dev libv4l-dev libxine2-dev
     
    # Parallelism and linear algebra libraries:
    sudo apt-get install -y libtbb-dev libeigen3-dev
     
    # Python:
    sudo apt-get install -y python-dev python-tk python-numpy python3-dev python3-tk python3-numpy
     
    # Java:
    sudo apt-get install -y ant default-jdk
     
    # Documentation:
    sudo apt-get install -y doxygen
     
     
    # 3. INSTALL THE LIBRARY (YOU CAN CHANGE '3.2.0' FOR THE LAST STABLE VERSION)
     
    sudo apt-get install -y unzip wget
    wget https://github.com/opencv/opencv/archive/3.2.0.zip
    unzip 3.2.0.zip
    rm 3.2.0.zip
    mv opencv-3.2.0 OpenCV
    cd OpenCV
    mkdir build
    cd build
    cmake -DWITH_QT=ON -DWITH_OPENGL=ON -DFORCE_VTK=ON -DWITH_TBB=ON -DWITH_GDAL=ON -DWITH_XINE=ON -DBUILD_EXAMPLES=ON -DENABLE_PRECOMPILED_HEADERS=OFF ..
    make -j4
    # retirer -j4 pour ne compiler que sur un coeur, évite des plantages de saturation
    sudo make install
    sudo ldconfig
     
     
    # 4. EXECUTE SOME OPENCV EXAMPLES AND COMPILE A DEMONSTRATION
     
    # To complete this step, please visit 'http://milq.github.io/install-opencv-ubuntu-debian'.
    en faisant bien attention à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    # GUI (if you want to use GTK instead of Qt, replace 'qt5-default' with 'libgtkglext1-dev' and remove '-DWITH_QT=ON' option in CMake):
    je ne sais pas si opencv dépend de gtk 2 ou 3 après une telle installation. Sais-tu comment je peux le savoir?



    troumad, nos options sont similaires, sauf que je suis en gtkmm pour c++
    je ne vois aucun #include <gtk dans ton projet

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/12/2013, 18h13
  2. Problème compilation Version 8.0.1 sous Debian Sarge
    Par LIndien dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 04/02/2005, 21h38
  3. [Word] Problème de version Word
    Par delphicrous dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 17/09/2004, 11h19
  4. Problèmes de versions avec Xalan, Xerces et Java
    Par honeyz dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 05/06/2003, 10h18

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