begin process at 2010 03 20 02:34:32
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Applications Linux

 > CRÉER UNE FENÊTRE AVEC LA XLIB (TOUT OS À BASE D'UNIX (LINUX, FREEBSD ....))

CRÉER UNE FENÊTRE AVEC LA XLIB (TOUT OS À BASE D'UNIX (LINUX, FREEBSD ....))


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Applications Linux Niveau :Débutant Date de création :05/04/2003 Date de mise à jour :05/04/2003 08:08:20 Vu :5 117

Auteur : bouba

Ecrire un message privé
Site perso
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

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

  • #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;
  • }
#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


 Sources du même auteur

Source avec Zip Source avec une capture EDITEUR DE FICHIERS C++ (LINUX, WINDOWS, MAC...)
FONCTIONS KBHIT() ET GETCH() SOUS LINUX (DOIT MARCHER AVEC T...
Source avec Zip Source avec une capture EDITEUR DE TEXTE (COMME LE NOTEPAD!!!) [COMPILATEUR BCC55](M...
Source avec une capture EXEMPLE D'UN CUBE PLEIN QUI TOURNE EN OPENGL (UTILISE GLUT)
Source avec Zip Source avec une capture DE LA MISE EN PAGE DANS VOS LABELS QT! C'EST BEAU, ET C'EST ...

 Sources de la même categorie

Source avec Zip Source avec une capture ANIMATIION GRAPHIQUE DES STRUCTURES DE DONNÉES par algoro
PILOTAGE DES 8 SORTIES DU PORT // par cedpic
Source avec Zip PARALLEL OBJECT PROGRAMMING IN C++ (POP-C++) : DEMO par lwinkler
Source avec Zip VOTE ELECTRONIQUE par luvianne
Source avec une capture REMOTE POST PHP WITH SOCKET LINUX par 0x0syscall

Commentaires et avis

Commentaire de Frostizz le 06/04/2003 10:23:18

Et comment on compile tout ca ?

Commentaire de bouba le 06/04/2003 20:46:23

Oui, tu as raison, j'avais oublié, merci de le signaler.
Bon, je suis sur une RedHat 7.3, je vous donne mon Makefile

LIB = /usr/X11R6/lib/
prog: prog.o
g++ -L ${LIB} -lX11 prog.o -o prog
prog.o:
g++ -Wall -c prog.cpp

Si vous avez une autre distribution ke la mienne il est possible que le chemin de Lib ne soit pas le même.
dans ce cas faites une recherche.
Par exemple:
locate X11 | grep lib

voila, pour d'autres questions n'hésitez pas!.
Bouba


Commentaire de Frostizz le 06/04/2003 21:26:42

Je me permet de rajouter une petite explication pour une mandrake !
Pour compiler:
g++ -Wall -pipe -DUNIX -O -c main.cpp
Pour lier aux librairies:
g++ -lX11 -I/usr/X11R6/include -I/usr/include -L/usr/X11R6/lib -L/usr/lib main.o -o main
Pour exécuter le programme:
./main

Commentaire de bouba le 07/04/2003 18:43:02

Je te remercie pour cette petite explication.
Bouba

Commentaire de Frostizz le 07/04/2003 19:34:03

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 !

Commentaire de OujdaMajid le 29/09/2003 20:38:55

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

Commentaire de bouba le 30/09/2003 07:35:15

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.

Commentaire de Coralsnake le 13/08/2009 23:30:16

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

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales