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 :

Logiciel de Facturation VERGIFAC ( C, GTK2, Cairo, SQLITE)


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    sans
    Inscrit en
    Novembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Novembre 2011
    Messages : 10
    Par défaut Logiciel de Facturation VERGIFAC ( C, GTK2, Cairo, SQLITE)
    Développé en C, GTK2, cairo et sqlite.

    J'ai beaucoup utilisé ce forum pour le mettre au point,
    c'est pourquoi je pense que le SOURCE peut
    intéresser quelques programmeurs.

    Téléchargements, copies d'écrans, manuel ,
    accès au SOURCE (github) à cette page:
    http://www.pouillyfuisse-delorme.com/mdcpt/cc.html

    versions Linux (32 et 64 bits) et Windows

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Bonjour.

    Content pour toi que tu ais pu finaliser ton projet.

    Je ne comprends rien à la comptabilité et ne suis donc pas naturellement intéressé par ton application. Cependant mon côté informaticien me pousse à être curieux. J'ai donc cloné ton projet pour voir un peu ton code source. J'aime bien voir comment d'autres écrivent du code source. Ça me donne souvent de nouvelles idées .

    Je me permets ici de te faire quelques remarques. Elles peuvent être constructives pour te permettre peut être d'améliorer un peu ton soft.

    Tout d'abord, ton projet compile sans problème et s'exécute normalement. Pour information je suis sous Debian amd64 testing. C'est déjà bien . Cependant j'obtiens quelques warnings à la compilation. Je te les livre en pâture :
    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
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    src/editfast.c: In function ‘interp’:
    src/editfast.c:303:2: warning: thisif’ clause does not guard... [-Wmisleading-indentation]
      if (param0() ==-1) return;  cairotext(); cairo_show_text(cr,senf.add1);
      ^~
    src/editfast.c:303:30: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘ifif (param0() ==-1) return;  cairotext(); cairo_show_text(cr,senf.add1);
                                  ^~~~~~~~~
    src/editfast.c:306:2: warning: thisif’ clause does not guard... [-Wmisleading-indentation]
      if (param0() ==-1) return;  cairotext(); cairo_show_text(cr,senf.add2);
      ^~
    src/editfast.c:306:30: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘ifif (param0() ==-1) return;  cairotext(); cairo_show_text(cr,senf.add2);
                                  ^~~~~~~~~
    src/editfast.c:309:2: warning: thisif’ clause does not guard... [-Wmisleading-indentation]
      if (param0() ==-1) return;  cairotext(); cairo_show_text(cr,senf.add3);
      ^~
    src/editfast.c:309:30: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘ifif (param0() ==-1) return;  cairotext(); cairo_show_text(cr,senf.add3);
                                  ^~~~~~~~~
    src/editfast.c:312:2: warning: thisif’ clause does not guard... [-Wmisleading-indentation]
      if (param0() ==-1) return;  cairotext(); cairo_show_text(cr,senf.pays);
      ^~
    src/editfast.c:312:30: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘ifif (param0() ==-1) return;  cairotext(); cairo_show_text(cr,senf.pays);
                                  ^~~~~~~~~
    src/editfast.c:315:2: warning: thisif’ clause does not guard... [-Wmisleading-indentation]
      if (param0() ==-1) return;  cairotext(); cairo_show_text(cr,senf.codpos);
      ^~
    src/editfast.c:315:30: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘ifif (param0() ==-1) return;  cairotext(); cairo_show_text(cr,senf.codpos);
                                  ^~~~~~~~~
    src/editfast.c:318:2: warning: thisif’ clause does not guard... [-Wmisleading-indentation]
      if (param0() ==-1) return;  cairotext(); cairo_show_text(cr,senf.add4);
      ^~
    src/editfast.c:318:30: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘ifif (param0() ==-1) return;  cairotext(); cairo_show_text(cr,senf.add4);
                                  ^~~~~~~~~
    src/editfast.c:321:2: warning: thisif’ clause does not guard... [-Wmisleading-indentation]
      if (param0() ==-1) return;  cairotext(); cairo_show_text(cr,senf.datfac);
      ^~
    src/editfast.c:321:30: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘ifif (param0() ==-1) return;  cairotext(); cairo_show_text(cr,senf.datfac);
                                  ^~~~~~~~~
    src/editfast.c:324:2: warning: thisif’ clause does not guard... [-Wmisleading-indentation]
      if (param0() ==-1) return;  cairotext(); cairo_show_text(cr,senf.numfac);
      ^~
    src/editfast.c:324:30: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘ifif (param0() ==-1) return;  cairotext(); cairo_show_text(cr,senf.numfac);
                                  ^~~~~~~~~
    echo fic%.o; gcc -o src/saifaccod.o -Wall `pkg-config --cflags gtk+-2.0 sqlite3` -I ./util/ -c `pkg-config --libs --cflags gtk+-2.0 sqlite3`  src/saifaccod.c 
    fic%.o
    echo fic%.o; gcc -o src/saifac.o -Wall `pkg-config --cflags gtk+-2.0 sqlite3` -I ./util/ -c `pkg-config --libs --cflags gtk+-2.0 sqlite3`  src/saifac.c 
    fic%.o
    src/saifac.c: In function ‘init_sfac’:
    src/saifac.c:780:1: warning: thisif’ clause does not guard... [-Wmisleading-indentation]
     if ( ligfac != NULL) free(ligfac); ligfac=NULL;
     ^~
    src/saifac.c:780:36: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘ifif ( ligfac != NULL) free(ligfac); ligfac=NULL;
                                        ^~~~~~
    src/saifac.c:781:1: warning: thisif’ clause does not guard... [-Wmisleading-indentation]
     if ( ligfac_wgt != NULL) free(ligfac_wgt); ligfac_wgt=NULL;
     ^~
    src/saifac.c:781:44: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘ifif ( ligfac_wgt != NULL) free(ligfac_wgt); ligfac_wgt=NULL;
                                                ^~~~~~~~~~
    src/saifac.c: In function ‘sfac_quit’:
    src/saifac.c:855:1: warning: thisif’ clause does not guard... [-Wmisleading-indentation]
     if ( ligfac != NULL) free(ligfac); ligfac=NULL;
     ^~
    src/saifac.c:855:36: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘ifif ( ligfac != NULL) free(ligfac); ligfac=NULL;
                                        ^~~~~~
    src/saifac.c:856:1: warning: thisif’ clause does not guard... [-Wmisleading-indentation]
     if ( ligfac_wgt != NULL) free(ligfac_wgt); ligfac_wgt=NULL;
     ^~
    src/saifac.c:856:44: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘ifif ( ligfac_wgt != NULL) free(ligfac_wgt); ligfac_wgt=NULL;
                                                ^~~~~~~~~~
    src/saifac.c: In function ‘cod_tax’:
    src/saifac.c:720:22: warning: ‘%s’ directive writing up to 49 bytes into a region of size 40 [-Wformat-overflow=]
          sprintf(libtax,"%s %#0.1f %%", ligcod[j].lib, vtax);
                          ^~
    src/saifac.c:720:6: note: ‘sprintf’ output between 7 and 365 bytes into a destination of size 40
          sprintf(libtax,"%s %#0.1f %%", ligcod[j].lib, vtax);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    src/saifac.c:733:22: warning: ‘%s’ directive writing up to 49 bytes into a region of size 40 [-Wformat-overflow=]
          sprintf(libtax,"%s %#0.1f %%  %s", ligcod[j].lib, vtax,zt);
                          ^~
    src/saifac.c:733:6: note: ‘sprintf’ output 9 or more bytes (assuming 58) into a destination of size 40
          sprintf(libtax,"%s %#0.1f %%  %s", ligcod[j].lib, vtax,zt);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Ensuite je suis un peu gêné par ton Makefile. Il n'est pas possible de faire un "make clean". Je n'ai pas tenté un "make install" mais est-ce possible ? Lancer l'exécutable juste après un make est déroutant, du moins pour moi. As-tu construis ce Makefile ou t'es-tu aidé d'un outil particulier ?

    Côté utilisation une première remarque. La fenêtre principale permet de choisir "un dossier". Ceci pose un problème. Pour moi un dossier est un répertoire. Pour toi il semblerait que ce soit à prendre dans un sens plus généraliste. En cliquant dessus on ouvre une fenêtre qui ne demande de choisir un dossier mais un fichier .db. Il faudrait renommer le bouton ainsi que la fenêtre de choix en "Ouvrir une base de données" ou "Ouvrir un fichier de comptabilité (.db)" par exemple. À toi de voir...

    La fenêtre "Paramètres divers" a un petit problème d'espace pour les écritures. Voila une capture d'écran, c'est plus simple pour comprendre :
    Nom : parametres.png
Affichages : 464
Taille : 19,4 Ko

    Même chose pour la fenêtre "Saisie facture". Le menu déroulant du type de facture est un peu étriqué. La date en dessous a le même problème.
    Nom : saisie_facture.png
Affichages : 675
Taille : 32,9 Ko

    J'arrête ici mon petit descriptif. Encore bravo pour ton projet

  3. #3
    Membre averti
    Homme Profil pro
    sans
    Inscrit en
    Novembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Novembre 2011
    Messages : 10
    Par défaut Réponse à Gerald3d
    Bonjour Gerald3d et merci pour ton post.

    Les WARNINGS
    Je n'ai pas tes warning dans toutes mes compils.

    exemple vergifac64 (linux)
    système Linux Mint 18 Cinnamon 64-bit
    gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)

    [-Wmisleading-indentation]
    Le code en question est volontairement concis pour en faciliter la relecture si besoin.
    if ( strcmp( ze,"ad1") == 0) {
    if (param0() ==-1) return; cairotext(); cairo_show_text(cr,senf.add1);
    }

    je pense que le warning disparaîtrait si code écrit comme ça:

    if ( strcmp( ze,"ad1") == 0) {
    if (param0() ==-1) return;
    cairotext();
    cairo_show_text(cr,senf.add1);
    }

    Par contre les warnings sur ces lignes:

    sprintf(libtax,"%s %#0.1f %%", ligcod[j].lib, vtax);
    détectent un problème potentiel que je vais corriger.

    Tous les programmeurs savent qu'un 'problème potentiel' est le fait d'utilisateurs pervers qui se font un malin plaisir de brutaliser un logiciel en activant du code qui n'a pas été testé.

    ______
    makefile
    Je suis pas un champion. Je l'ai bricolé à force d'essais et de copies à droite et à gauche. C'est un makefile pour test.
    Je pense que des outils comme make, bash et d'autres sont de vieux outils modifiés depuis presque 40 ans par des rustines et des rustines sur rustines mériteraient d'être remis à plat en proposant des syntaxes moins tordus.

    ________
    taille police
    Ici c'est le problème de l'aspect des fenêtres variables suivant le thème du bureau, la taille de la police et la taille de l'écran.

    Par exemple, sur mon Mint cinnamon, je ne me suis pas préoccupé du thème et des polices parce que inconsciemment ça me convenait.
    thème = Linux Mint ?
    j'ai police par défaut = 'noto sans regular' taille 9
    test taille 10 c'est encore bon
    taille 11 j'ai le même problème que toi.

    Existe-t-il dans GTK un paramétrage de la taille de la police utilisée dans une application ? et redimensionner les fenêtres en conséquence ?

    J'ai du étudier le problème à un moment ou un autre sans le finalisé complètement.
    Dans le fichier util/genfen.h j'ai un paramètre fixe
    #define DIMC 7 // dimension 1 car a afficher
    qui ajuste la taille des saisies.
    On pourrait le mettre en paramètre variable, mais bonjour la doc.

  4. #4
    Membre averti
    Homme Profil pro
    sans
    Inscrit en
    Novembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Novembre 2011
    Messages : 10
    Par défaut Modif dans github
    Rebonjour Gerald3d

    Je viens de recevoir le message de tes modifs dans github.

    Je pédale pas mal dans la choucroute avec github

    Je vais donc tenter de récupérer ton code et le tester.

    Je te tiens au courant.

    Et encore merci pour ton interet à vergifac.

  5. #5
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par pap71 Voir le message
    Rebonjour Gerald3d

    Je viens de recevoir le message de tes modifs dans github.

    Je pédale pas mal dans la choucroute avec github

    Je vais donc tenter de récupérer ton code et le tester.

    Je te tiens au courant.

    Et encore merci pour ton interet à vergifac.
    J'ai trouvé ces deux liens qui pourraient peut-être t'aider pour intégrer la branche optimisations à ton projet local :
    https://borisschapira.com/2016/06/re...r-mr-en-local/
    https://gist.github.com/dzc34/44e3c2248cea08ac510a

  6. #6
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Pendant que j'y suis je regarde depuis un petit moment la fonction formfloat ();. Je suis inquiet . comment fixes-tu la taille du tableau char ss[] qui va recevoir le résultat de la conversion du double ff transmis ?

    Je partirai plutôt sur une fonction de la forme gchar * formfloat (gdouble ff);. Le pointeur renvoyé serait alloué dynamiquement. Ainsi tu pourrais avoir ce genre d'utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    gchar *result = NULL;
     
    result = formfloat (10.31313002);
    ...
    /* utilisation de result */
    ...
    g_free (result);
    result = NULL;
    Et cette méthode pourrait être généralisée dans tout ton code. Cela le rendrait bien plus robuste je pense.

    Ensuite pour ce qui est du cœur de cette fonction je ne comprends pas bien son fonctionnement. Je suis certainement dans l'erreur mais je pense que tu désires enlever le point et les zéros après la virgule si bien sûr le double transmis est en réalité un en entier.
    Si c'est bien ce que tu recherches vérifies simplement si ff est un entier en vérifiant le modulo de ff par 2. Si tel est le cas il te suffit d'utiliser g_strdup_printf(); pour le convertir en gchar* alloué dynamiquement.

  7. #7
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par pap71 Voir le message
    Bonjour Gerald3d et merci pour ton post.

    Les WARNINGS
    Je n'ai pas tes warning dans toutes mes compils.

    exemple vergifac64 (linux)
    système Linux Mint 18 Cinnamon 64-bit
    gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)

    [-Wmisleading-indentation]
    Le code en question est volontairement concis pour en faciliter la relecture si besoin.
    if ( strcmp( ze,"ad1") == 0) {
    if (param0() ==-1) return; cairotext(); cairo_show_text(cr,senf.add1);
    }

    je pense que le warning disparaîtrait si code écrit comme ça:

    if ( strcmp( ze,"ad1") == 0) {
    if (param0() ==-1) return;
    cairotext();
    cairo_show_text(cr,senf.add1);
    }
    Je confirme. Les warnings disparaissent.

    Citation Envoyé par pap71 Voir le message
    Par contre les warnings sur ces lignes:

    sprintf(libtax,"%s %#0.1f %%", ligcod[j].lib, vtax);
    détectent un problème potentiel que je vais corriger.

    Tous les programmeurs savent qu'un 'problème potentiel' est le fait d'utilisateurs pervers qui se font un malin plaisir de brutaliser un logiciel en activant du code qui n'a pas été testé.
    J'ai justement corrigé dans les commits que je t'ai envoyé.

    Citation Envoyé par pap71 Voir le message
    _____
    makefile
    Je suis pas un champion. Je l'ai bricolé à force d'essais et de copies à droite et à gauche. C'est un makefile pour test.
    Je pense que des outils comme make, bash et d'autres sont de vieux outils modifiés depuis presque 40 ans par des rustines et des rustines sur rustines mériteraient d'être remis à plat en proposant des syntaxes moins tordus.
    Je suis bien d'accord. Ce n'est pas très clair. Mais comme on dit, c'est en forgeant qu'on devient forgeron...

    Citation Envoyé par pap71 Voir le message
    ________
    taille police
    Ici c'est le problème de l'aspect des fenêtres variables suivant le thème du bureau, la taille de la police et la taille de l'écran.

    Par exemple, sur mon Mint cinnamon, je ne me suis pas préoccupé du thème et des polices parce que inconsciemment ça me convenait.
    thème = Linux Mint ?
    j'ai police par défaut = 'noto sans regular' taille 9
    test taille 10 c'est encore bon
    taille 11 j'ai le même problème que toi.

    Existe-t-il dans GTK un paramétrage de la taille de la police utilisée dans une application ? et redimensionner les fenêtres en conséquence ?

    J'ai du étudier le problème à un moment ou un autre sans le finalisé complètement.
    Dans le fichier util/genfen.h j'ai un paramètre fixe
    #define DIMC 7 // dimension 1 car a afficher
    qui ajuste la taille des saisies.
    On pourrait le mettre en paramètre variable, mais bonjour la doc.
    Je vais regardé un peu ce petit souci d'affichage voir s'il y a une solution élégante.

  8. #8
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Je commence à comprendre les petits soucis d'affichage. Tu as tendance à vouloir imposer des tailles pour tes widgets. Malheureusement pour toi ce n'est pas la philosophie de Gtk+. Tu dois libérer tout ce petit monde et le laisser prendre la place dont il a besoin .

    Par exemple dans la fonction void boutsfac(GtkWidget *box); tu imposes la taille au GtkComboBox avec la ligne gtk_widget_set_size_request(cbtypdoc, 100, 25);. Une fois cette ligne mise en commentaire le menu déroulant s'adapte aux textes internes. Ainsi tu n'as pas à te soucier du thème graphique de l'utilisateur final.

    Menu avant modification :Nom : menu_avant.png
Affichages : 586
Taille : 9,4 Ko Menu après fermé :Nom : menu_ferme.png
Affichages : 464
Taille : 10,1 Ko Menu après ouvert :Nom : menu_ouvert.png
Affichages : 599
Taille : 9,8 Ko

  9. #9
    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,

    Citation Envoyé par pap71 Voir le message
    makefile
    Je suis pas un champion. Je l'ai bricolé à force d'essais et de copies à droite et à gauche. C'est un makefile pour test.
    Je pense que des outils comme make, bash et d'autres sont de vieux outils modifiés depuis presque 40 ans par des rustines et des rustines sur rustines mériteraient d'être remis à plat en proposant des syntaxes moins tordus.
    C'est déjà le cas. Il y a des alternatives:
    • autotools qui existe depuis des lustres mais assez gargantuesque
    • CMake, plus accessible
    • meson, récemment adopté par le projet GTK+ (et GStreamer, et pas mal d'autres)


    J'ai clairement un parti pris pour meson. Il a une syntaxe claire et proche de python, et tu peux faire une application simple en GTK+ en 3 lignes: http://mesonbuild.com/Tutorial.html
    De plus, meson tente de faire par défaut ce qu'on attendrait. Par exemple les warnings du compilateur sont activés par défaut, ce qui évite les erreurs grossières (souvent les débutants oublient ou ne savent pas activer les warnings).
    Voici par exemple gtk3-graph, une petite application qui utilise cairo pour afficher une courbe dans une fenêtre GTK+, et que je construis avec meson.

  10. #10
    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
    Autre commentaire: je te conseille de lire les Human Interface Guidelines de GNOME (GNOME HIG) qui t'indiquent comment agencer des widgets pour rendre une application plaisante à utiliser. Je pense aussi que ton application gagnerait à avoir plus de fenêtres, mais avec moins de widgets, là c'est assez brouillon. Tu peux utiliser Glade pour concevoir ton interface et GtkBuilder pour la construire dynamiquement au démarrage de ton application.

  11. #11
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par liberforce Voir le message
    Autre commentaire: je te conseille de lire les Human Interface Guidelines de GNOME (GNOME HIG) qui t'indiquent comment agencer des widgets pour rendre une application plaisante à utiliser. Je pense aussi que ton application gagnerait à avoir plus de fenêtres, mais avec moins de widgets, là c'est assez brouillon. Tu peux utiliser Glade pour concevoir ton interface et GtkBuilder pour la construire dynamiquement au démarrage de ton application.
    Je n'ai pas osé aller encore sur ce terrain là dans mes premiers commentaires. Cela l'obligerai à revoir de fond en comble une application qu'il vient de finir. Pour ma part ca aurait tendance à me casser le moral . Mais effectivement tu as tout fait raison.

    Je verrais bien un passage à Glade et Gtk3+ pour la future version 2.0 .

Discussions similaires

  1. Cherche Logiciel de Facturation Gratuit
    Par stanley dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 31/05/2016, 22h19
  2. Logiciels de Facturation VERGIFAC et de Comptabilité VERGISC
    Par pap71 dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 01/11/2013, 08h49
  3. Cherche Logiciel de Facturation
    Par stanley dans le forum Autres Logiciels
    Réponses: 10
    Dernier message: 17/12/2007, 07h22
  4. [INFO]Logiciel de Facturation
    Par stanley dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 29/09/2007, 15h20
  5. [aide]Conseils logiciel de facturation
    Par diden138 dans le forum Delphi
    Réponses: 14
    Dernier message: 12/01/2007, 10h47

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