Créer une fenêtre avec la xlib (tout os à base d'unix (linux, freebsd ....))

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 334 fois - Téléchargée 33 fois

Contenu du snippet

Bon, le titre dis tout. Si vous ne savez pas ce qu'est la Xlib, c'est une librairie graphique bas niveau utilisée sous UNIX. A la différence de QT et GTK (dites de haut niveau) elle a l'avantage de pouvoir produire un code plus court et plus rapide. C'est par exemple très bien pour développer un jeu.
Voila, su vous voulez en savoir plus y'a pas mal de doc sur le web.

Source / Exemple :


#include <X11/Xlib.h>   // Header de la Xlib

int main()
{
  Display* ConnectionServeurX = XOpenDisplay(NULL);    // Connection au serveur X

  int CouleurBlanche = WhitePixel(ConnectionServeurX, DefaultScreen(ConnectionServeurX));   // déclaration d'une couleur blanche

  Window Fenetre = XCreateSimpleWindow(ConnectionServeurX,
				      RootWindow(ConnectionServeurX,DefaultScreen(ConnectionServeurX)),
				      0,0,200,100,0,CouleurBlanche,CouleurBlanche);    // Création d'un fenêtre de coordonnées 0,0 et de 200 sur 200, de couleur de fond blanche et bordure blanche
  XMapWindow(ConnectionServeurX, Fenetre);       // Mapping de la fenêtre
  XSelectInput(ConnectionServeurX, Fenetre,KeyPressMask);       // On séelectionne les évennements utiles , KeyPressMask pour capturer un événement clavier

  XEvent Evenement;        // déclaration d'u événement
  do {
    XNextEvent(ConnectionServeurX, &Evenement);
    XFlush(ConnectionServeurX);
  } while(Evenement.type != KeyPress);   // afficher la fenêtre tant qu'aucune touche n'est pressée

  return 0;
}

Conclusion :


Voila, si vous avez des remarques ou questions n'hésitez pas !!!
Bouba

A voir également

Ajouter un commentaire

Commentaires

Messages postés
13
Date d'inscription
lundi 29 juillet 2002
Statut
Membre
Dernière intervention
7 octobre 2009

sympa comme code de base, je trouve juste un peut dommage que que mette la même couleur d'arrière et d'avant plan pas pratique pour faire des dessins ...

rajouter :
int CouleurNoire = BlackPixel(ConnectionServeurX,DefaultScreen(ConnectionServeurX));

ça ne complique pas le code, et puis donner un nom à la fenêtre avec :

XStoreName(ConnectionServeurX,Fenetre,"petite code sympa");

ça aurait été plus sympa .

voila sinon je trouve ton code claire et concis idéale pour un débutant sous X
Messages postés
518
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
10 novembre 2007
3
Salut, c'est super simple, tu créer un fichier makefile sans aucune extension dans lequel tu inscris les lignes que j'ai tappé dans mon commentaire un pe plus haut. Tu enregistres.
Ensuite tu te place sous la konsole dans le répertoire ki contient la source et le makefile et tu tapes:
make [entrée]
Voila, ensuite pour lancer le prog tu fais.
./prog
Voila, c'est tout, surtout, si tu as d'autres questions n'hésites pas!!!
Alé bonne prog! :-)
Bouba.
Messages postés
26
Date d'inscription
dimanche 27 octobre 2002
Statut
Membre
Dernière intervention
4 avril 2007

Salut Bouba, coul l'exemple mais voilà, je débute en Redhat,j'ai crée un fichier,j'ai tapé ton exemple,comment je peux le compiler.
j'ai vu que tu parlais d'un makefile.
dis moi comment je dois m'y prendre,est ce que je dois créer un fichier que je dois nommer makefile ou bien je dois taper directement dans la console ces quelques lignes??????????
merci
Messages postés
39
Date d'inscription
jeudi 30 août 2001
Statut
Membre
Dernière intervention
23 janvier 2005

Bon comme je suis trés gentil, je vais encors le prouver une fois de plus. Aller à cette addresse: http://login.posse-press.com/sources
Vous pouvez télécharger l'archive et regarder les sources !
Messages postés
518
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
10 novembre 2007
3
Je te remercie pour cette petite explication.
Bouba
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.