Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 30/03/2006, à 13:13

trucutu

[Résolu] Interface graphique C/C++

Bonjour

Je suis actuellement en train de développer un petit outil en C++ (sous windows, pour des raisons professionnelles), et j'étudie les possibilités d'améliorer l'interface graphique (sortir du mode DOS...). J'ai recemment découvert les API : j'ai durement galéré rien que pour afficher une boîte de dialogue avec un bouton Ok et le message "Hello World !!! " (no comment...)

Tant qu'à faire, j'aimerais aussi trouver l'équivalent Linux (éviter le mode console...), aux cas où il me prendrait l'envie de dévellopper du soft sur cet OS le soir "à la veillée". Une recherche (trop?!) rapide m'a orienté vers Xwindow, mais c'a l'air d'être une usine à gaz (librairies Xlib, Xt, Xm?..).

Bref, des retours d'expérience dans le domaine (accompagnés pourquoi pas d'exemples ou de tutos), et/ou dans d'autres langages (est ce plus simple en java par ex?, comment sont développés les programmes d'Ubuntu (les plus simples, évidemment) vis a vis de ce problème...) seraient les bienvenus

Merci d'avance

Dernière modification par trucutu (Le 04/04/2006, à 08:14)


La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !

Hors ligne

#2 Le 30/03/2006, à 13:34

m+rh-e

Re : [Résolu] Interface graphique C/C++

pour le c++, il  y a 3 api: GTKmm, Qt et wxWidget, les 3 sont multiplatformes (gnome, kde, windows...)

http://www.gtkmm.org/docs/gtkmm-2.4/docs/
http://doc.trolltech.com/3.3/
http://www.wxwidgets.org/

Dernière modification par m+rh-e (Le 30/03/2006, à 13:35)

Hors ligne

#3 Le 30/03/2006, à 15:38

trucutu

Re : [Résolu] Interface graphique C/C++

Et GTK+, ce n'est que pour le C ?

Merci pour ta réponse, cela m'a bien ré-orienté


La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !

Hors ligne

#4 Le 30/03/2006, à 15:49

zeugme

Re : [Résolu] Interface graphique C/C++

Oui, c'est plus simple en Java et en plus, c'est portable.
Si tu as des questions plus precise, n'hesite pas.

Hors ligne

#5 Le 30/03/2006, à 16:58

m+rh-e

Re : [Résolu] Interface graphique C/C++

GTKmm est un binding C++ de GTK+
En fait, la simplicité dépend de ta maitrise des langages en question et des concepts graphiques, pour ma part, je suis un grand fan de GTKmm, elle intègre bien la STL.

Dernière modification par m+rh-e (Le 30/03/2006, à 17:03)

Hors ligne

#6 Le 30/03/2006, à 17:23

zeugme

Re : [Résolu] Interface graphique C/C++

Sans vouloir troller, la simplicite peut aussi se mesurer aux nombres de lignes.
C'est tres objectif.

Cela dit, la simplicite n'est pas le seul critere de choix d'un langage.

Hors ligne

#7 Le 30/03/2006, à 21:14

lost-in-the-shell

Re : [Résolu] Interface graphique C/C++

La librairie wxWidgets a l'avantage de générer des fenêtres quel que soit l'OS, le code source est le même cool Je compte l'utiliser quand j'aurai besoin de coder en C


Linux user #401253 - Ubuntu user #3023 .
Nick sur IRC : naji.
Pensez à adhérer au Comité de lutte contre le SMS.

Hors ligne

#8 Le 31/03/2006, à 08:11

trucutu

Re : [Résolu] Interface graphique C/C++

jbb-> si tu veux une question plus précise, en voilà une petite: en quoi c'est plus simple en Java ? Mais bon, je trouverai des éléments de réponse par moi même smile

En tous cas merci de m'avoir éclairé sur GTKmm (je me suis rendu compte après mon post de la différence avec GTK+) et wxWidgets, je vais essayer de m'y mettre


La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !

Hors ligne

#9 Le 31/03/2006, à 10:13

zeugme

Re : [Résolu] Interface graphique C/C++

Simple, pas simple, mieux, pas mieux, voila typiquement le genre de truc tres difficile a transmettre ou decrire sans declencher des discussions sans fin, le mieux c'est que tu te fasse une idee par toi meme.
Il y a fort longtemps, c'est ce que j'avais fait : une GUI en X et une autre en AWT. Il n'y avait rien d'autre a l'epoque dans les "deux camps".
Bien sur tout est encore plus simple, mieux, puissant aujourd'hui !

La seule solution me semble que tu te fixe une GUI simple et que tu la code dans les deux langages.

Sinon, une autre chose a faire est de bien identifier tes besoins et de chercher une adequation. Chaque langage a des specificites, en d'autre termes, des avantages et des inconvenients.

Enfin et c'est parfois ce qui occupe tout le terrain de la discussion, il y a des preferences subjectives.

La rapidite est un faux probleme, ton algo, la facon de coder aura plus d'impact, surtout au debut, sur les perf que le choix du langage. Les machine virtuelles (java ou pas) on fait de tels progres que la rapidite n'est decidement pas, a mon avis, un argument general.

Quant a la "puissance" semantique, je dirais que LISP est le meilleur choix. Ce langage contient le meilleur de tout ce qui se fait : compile et/ou interprete, Objet et/ou pas objet, dynamique et/ou statique, type fort et/ou pas type fort, natif et/ou pas natif, le tout au choix du developpeur et melangeable dans un meme programme.

Le seul et enorme probleme : c'est une niche. Ce langage est trop puissant et decourage par sa syntaxe pretenduement difficile, enfin les cours de LISP sont souvent tres mal fait et utilisent de vieux LISP poussiereux alors qu'on peut faire des IHM moderne en LISP.
Et puis il n'y a pas d'outils resolument moderne : un Eclipse pour LISP par exemple.

Quant a la simplicite, un autre argument me vient a l'esprit et il est tres important, peut etre le plus important : ce qui est tres simple, c'est ce que l'on connais deja. Ce que l'on ne connais pas est tres complique. C'est une mesure de l'energie a depenser pour apprendre.

Donc, si tu connais deja le C/C++, ca sera plus simple pour toi.

Dernière modification par jbb (Le 31/03/2006, à 10:15)

Hors ligne

#10 Le 31/03/2006, à 12:19

trucutu

Re : [Résolu] Interface graphique C/C++

Ouh là...
J'aurais préféré savoir en quoi c'est plus simple "en pratique", parce que là, ca devient vraiment compliqué.

Pour l'instant, tout ce que j'ai réussi à faire, c'est ouvrir une simple boîte de dialogue crée à partir de 2 IDE windows (Borland et Visual C++.... ok, je jure que je vais le tenter sur Dev-cpp). Un fichier de ressource permet de gérer le graphisme de la fenètre (taille, insersion des boutons...) et il faut rajouter des fonctions bizarres (lire inhabituelles) dans les sources pour gérer les évènements.

Bon, jusque là, pas trop de problème.
Alors, la notion de simplicité, pour moi, c'est plutôt de savoir s'il y a moyen de faire de même sous Ubuntu ou est-ce qu'il faut par exemple tout se coder à la main façon HTML, Latex en ce qui concerne le graphisme.
Est-ce qu'il y a des langages qui se prètent plus facilement à ce genre d'exercices en termes de syntaxe ou est-ce que c'est la galère partout.

Après, j'en suis pas encore à me demander comment je vais exporter mes programmes sous plusieurs OS, vu que j'ai déjà relevé un problème pour executer ma petite fenètre sur des PC différents (même OS, mais version différentes)

Voilà, c'est sûr que s'il existe des codes (librairies) qui peuvent fonctionner indifférement (ou avec le minimum de modifs) sur plusieurs OS, mieux vaut apprendre cela directement


La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !

Hors ligne

#11 Le 31/03/2006, à 12:30

Aelor

Re : [Résolu] Interface graphique C/C++

Glade pour construire des interfaces en GTK. Rien de mieux !

Allez je vais prendre un screen pour l'exemple :

http://plainsofpain.free.fr/img/ubuntu/prog_rubyglade.png

Tain c'est bien parce que je vous aime tongue


Ex Roane.

Ruby, le langage qui tue : http://rubyfr.org

Hors ligne

#12 Le 31/03/2006, à 12:35

zeugme

Re : [Résolu] Interface graphique C/C++

SwingML ou mieux : XUL en Java bien sur !
Rien de plus simple pour faire une IHM.
Un lien ? Ok, un lien.
http://thinlet.sourceforge.net/home.html

L'idee est de decrire en XML des IHM. Le standard XML est XUL.

Naturellement, Firefox interprete XUL nativement.

http://xulalliance.org/

Ah oui, un editeur XUL ecrit en XUL
http://thing.sourceforge.net/
mais bon, ces editeurs graphiques, je ne toruve pas ca tres utile.

Ici, tu as un bon exemple rapide pour te rendre compte de ce que simple veut dire
http://thinlet.sourceforge.net/calculator.html

Moins de 30 lignes de code.

Et enfin : ce programme n'aura meme pas besoin d'etre recompile pour tourner a peu pres partout, donc ubuntu et windows sans le moindre probleme.

Dernière modification par jbb (Le 31/03/2006, à 12:57)

Hors ligne

#13 Le 31/03/2006, à 15:35

trucutu

Re : [Résolu] Interface graphique C/C++

Merci, ca redevient plus clair

Même si, après de multiple recherche sur le forum, la diversité des solutions est déroutante. Ce we, je vais tenter l'installation de Glade (par compilation manuelle a partir des sources du site, car pas internet (=>pas Synaptic) et la flemme de telecharger tous les paquets... bref en freeride) . Si ca marche pas, je tenterais sûrement GTK+ sous Dev-cpp avec un tuto de 161 p. Et si ca ne vas pas non plus, je passerai aux wxWidget avec le Book de 700p in English... De quoi m'occuper pour un petit moment


La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !

Hors ligne

#14 Le 11/04/2006, à 12:40

trucutu

Re : [Résolu] Interface graphique C/C++

Ca y est, j'ai réalisé ma première appli wxWidgets !!
Une fenètre qui permet de résoudre les racines du second degré, où l'utilisateur entre les 3 coeff de l'équation.

Là où il faut 1 ou 2h en console, ca m'a pris 1 journée 1/2 à temps plein ! vive la simplicité

Bon maintenant, "Comment qu'on fait pour le donner à la communauté ?" (on ne sait jamais, cela pourrait intéresser des 1°, Term S...) (faire un .deb ?, partager les sources ?...). Non je plaisante, il y a bien assez de docs et de topics pour répondre à ce genre de questions wink


La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !

Hors ligne

#15 Le 11/04/2006, à 12:47

Soulfly_tribe90

Re : [Résolu] Interface graphique C/C++

trucutu a écrit :

Ca y est, j'ai réalisé ma première appli wxWidgets !!
Une fenètre qui permet de résoudre les racines du second degré, où l'utilisateur entre les 3 coeff de l'équation.

Là où il faut 1 ou 2h en console, ca m'a pris 1 journée 1/2 à temps plein ! vive la simplicité

Bon maintenant, "Comment qu'on fait pour le donner à la communauté ?" (on ne sait jamais, cela pourrait intéresser des 1°, Term S...) (faire un .deb ?, partager les sources ?...). Non je plaisante, il y a bien assez de docs et de topics pour répondre à ce genre de questions wink

Ola deja 1 ou 2h pour faire ca en console c'est deja bcp big_smile

Sinon en projet je dois faire un espece de talk multiutilisateur en mode console... Il est deja fini et me reste legerement 4 semaines avant de le rendre donc pourquoi pas faire une interface graphique big_smile
Donc je vais essayer avec tous les elements qui sont donnés ici et on verra bien big_smile

Merki bien wink

Hors ligne

#16 Le 11/04/2006, à 13:23

aleph

Re : [Résolu] Interface graphique C/C++

Par curiosité. Quelle version de wxWidgets ?

#17 Le 11/04/2006, à 16:30

trucutu

Re : [Résolu] Interface graphique C/C++

Version 2.6.2, il me semble


La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !

Hors ligne

#18 Le 11/04/2006, à 20:37

aleph

Re : [Résolu] Interface graphique C/C++

@ trucutu

Merci.

Petit cadeau, ton application en Python:

# -*- coding: iso-8859-1 -*-

# equ.py, usage: $python equ.py 1 2 3

import sys
import cmath

def main():
    a, b, c = float(sys.argv[1]), float(sys.argv[2]), float(sys.argv[3])
    sqrtdelta = cmath.sqrt(b * b - 4 * a * c)
    twoa = 2 * a
    x1 = (- b + sqrtdelta) / twoa
    x2 = (- b - sqrtdelta) / twoa
    print 'x1 =', x1, 'x2 =', x2

if __name__ == '__main__':
    main()

#eof

#19 Le 12/04/2006, à 08:24

trucutu

Re : [Résolu] Interface graphique C/C++

et niveau interface graphique, ca donne quoi ?

Ou est-ce que tu défini les boutons ("lancer calcul", "quitter application")? les boîtes de textes où l'utilisateur entre les paramètres? comment vérifie tu qu'il a bien entré un nombre et pas du texte? Que ce passe t'il le cas échéant?

Tout ton code fait tout ça ???


La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !

Hors ligne

#20 Le 12/04/2006, à 09:51

aleph

Re : [Résolu] Interface graphique C/C++

@ trucutu

Non, c'est une version en mode console que j'ai écrite en 5 minutes. Si au moins tu avais essayé d'éxécuter le script !

#21 Le 12/04/2006, à 10:13

trucutu

Re : [Résolu] Interface graphique C/C++

C'est bien ce qui me semblait.
L'algo, ca fait un moment que je l'ai. Si c'est pour faire du mode console, que se soit en Pyhton, C/C++ ou plus pratique : Casio (graphique 30, si ca existe encore..., mes premiers programmes...snif), ca change pas grand chose (hormis la syntaxe).

Non, l'intérêt était ici de faire une appli graphique simple ( une fenêtre, deux boutons, trois nombres à entrer, et trois nombres (réels ou complexe, Python gère les complexes?) à générer (les solutions et le déterminant).
C'est mon "Hello World" en quelque sorte...

Maintenant, j'ai tout un programme en mode console, que je vais devoir transposer en mode graphique, et là ça ne va pas être de la tarte..

Merci quand même pour le cadeau. Si je me mets un jour au Python, j'aurai au moins un exemple de base


La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !

Hors ligne

#22 Le 21/07/2006, à 20:50

trucutu

Re : [Résolu] Interface graphique C/C++

Aleph > Ca y est, j'ai enfin executé ton script. Genre 3 mois après tongue ... sans commentaires !

Effectivement, ça a l'air puissant. J'ai récupérer un peu de doc. Je vais voir comment ça peut se porter avec une API (et tout d'abord comprendre la syntaxe du script smile ). Si l'essai est concluant, il y a de fortes chances que je devienne un partisant de Python.

Parce que les wxWidgets en C++, ne m'en parlez plus trop !! non, je plaisante. C'est sympa, mais dès qu'on veut faire des choses très spécifique (genre process / threads ), il faut bien chercher dans la doc ou dans les forums (in English), et les posts sont peu compréhensibles (déjà que sur ce forum en français, ça frole le charabia pour un newbie...)


La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !

Hors ligne

#23 Le 24/07/2006, à 22:41

FiFouille

Re : [Résolu] Interface graphique C/C++

bah
python, ruby, perl, toussa
y'a des bindings gtk de partout, et des tutoriaux complets sur le sujet
sans compter la doc qui est en général on ne peut plus complète (sauf peut être pour ruby-gtk sad )

Hors ligne