إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

كيف أنشئ window بإستخدام C++ ؟؟

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • كيف أنشئ window بإستخدام C++ ؟؟

    السلام عليكم و رحمة الله و بركاته

    كيف أنشئ window بإستخدام C++ بدون إستخدام مكتبة QT ... ؟؟ :painting:
    و هل هناك كود خاص لنوافذ كيدي و آخر خاص بجينوم ؟؟
    و كيف أقوم بإنشاء الأدوات مثل textbox و commandbutton ؟؟

    و جزاكم الله خيراً


  • #2
    موضوع كبير قوى ......


    just a User innately
    اللهم اهدنا إلى الطيب من القول ؛ واهدنا إلى صراط الحميد

    تعليق


    • #3
      Qt --> KDE
      GTK --> GNOME

      راجع حزم التطوير والبرمجه في توزيعتك وركبها جميعاً ، ستجد بيئات تطوير رسومية تساعدك بانشاء الواجهات الرسومية للبرامج
      التعديل الأخير تم بواسطة عبد العزيز; الساعة 19-07-2007, 06:46 AM.

      تعليق


      • #4
        اهلاااااا
        يوجد كمية رهيبة من المكتبات التي تساعدك على انشاء النوافذ ،،:twister2:
        شوف هنا:
        http://www.geocities.com/SiliconVall...4/guitool.html

        اختر ما يناسبك ،
        وبالتوفيق.

        تعليق


        • #5
          بالفعل موضوع كبير

          http://www.apitalk.com/category.php?id=1

          تعليق


          • #6
            ياعم هو لازم cpp استخدم c مع ال xserver وال xlib.h جامده وليها ممزيتها برده
            quoted from one of my papers : by choo girl

            كود:
            #include <X11/Xlib.h>
            
            #include <stdio.h>
            #include <stdlib.h>		/* getenv(), etc. */
            #include <unistd.h>		/* sleep(), etc.  */
            
            /*
             * function: create_simple_window. Creates a window with a white background
             *           in the given size.
             * input:    display, size of the window (in pixels), and location of the window
             *           (in pixels).
             * output:   the window's ID.
             * notes:    window is created with a black border, 2 pixels wide.
             *           the window is automatically mapped after its creation.
             */
            Window
            create_simple_window(Display* display, int width, int height, int x, int y)
            {
              int screen_num = DefaultScreen(display);
              int win_border_width = 2;
              Window win;
            
              /* create a simple window, as a direct child of the screen's */
              /* root window. Use the screen's black and white colors as   */
              /* the foreground and background colors of the window,       */
              /* respectively. Place the new window's top-left corner at   */
              /* the given 'x,y' coordinates.                              */
              win = XCreateSimpleWindow(display, RootWindow(display, screen_num),
                                        x, y, width, height, win_border_width,
                                        BlackPixel(display, screen_num),
                                        WhitePixel(display, screen_num));
            
              /* make the window actually appear on the screen. */
              XMapWindow(display, win);
            
              /* flush all pending requests to the X server. */
              XFlush(display);
            
              return win;
            }
            
            GC
            create_gc(Display* display, Window win, int reverse_video)
            {
              GC gc;				/* handle of newly created GC.  */
              unsigned long valuemask = 0;		/* which values in 'values' to  */
            					/* check when creating the GC.  */
              XGCValues values;			/* initial values for the GC.   */
              unsigned int line_width = 2;		/* line width for the GC.       */
              int line_style = LineSolid;		/* style for lines drawing and  */
              int cap_style = CapButt;		/* style of the line's edje and */
              int join_style = JoinBevel;		/*  joined lines.		*/
              int screen_num = DefaultScreen(display);
            
              gc = XCreateGC(display, win, valuemask, &values);
              if (gc < 0) {
            	fprintf(stderr, "XCreateGC: \n");
              }
            
              /* allocate foreground and background colors for this GC. */
              if (reverse_video) {
                XSetForeground(display, gc, WhitePixel(display, screen_num));
                XSetBackground(display, gc, BlackPixel(display, screen_num));
              }
              else {
                XSetForeground(display, gc, BlackPixel(display, screen_num));
                XSetBackground(display, gc, WhitePixel(display, screen_num));
              }
            
              /* define the style of lines that will be drawn using this GC. */
              XSetLineAttributes(display, gc,
                                 line_width, line_style, cap_style, join_style);
            
              /* define the fill style for the GC. to be 'solid filling'. */
              XSetFillStyle(display, gc, FillSolid);
            
              return gc;
            }
            
            void
            main(int argc, char* argv[])
            {
              Display* display;		/* pointer to X Display structure.           */
              int screen_num;		/* number of screen to place the window on.  */
              Window win;			/* pointer to the newly created window.      */
              unsigned int display_width,
                           display_height;	/* height and width of the X display.        */
              unsigned int width, height;	/* height and width for the new window.      */
              char *display_name = getenv("DISPLAY");  /* address of the X display.      */
              GC gc;			/* GC (graphics context) used for drawing    */
            				/*  in our window.			     */
            
              /* open connection with the X server. */
              display = XOpenDisplay(display_name);
              if (display == NULL) {
                fprintf(stderr, "%s: cannot connect to X server '%s'\n",
                        argv[0], display_name);
                exit(1);
              }
            
              /* get the geometry of the default screen for our display. */
              screen_num = DefaultScreen(display);
              display_width = DisplayWidth(display, screen_num);
              display_height = DisplayHeight(display, screen_num);
            
              /* make the new window occupy 1/9 of the screen's size. */
              width = (display_width / 3);
              height = (display_height / 3);
              printf("window width - '%d'; height - '%d'\n", width, height);
            
              /* create a simple window, as a direct child of the screen's   */
              /* root window. Use the screen's white color as the background */
              /* color of the window. Place the new window's top-left corner */
              /* at the given 'x,y' coordinates.                             */
              win = create_simple_window(display, width, height, 0, 0);
            
              /* allocate a new GC (graphics context) for drawing in the window. */
              gc = create_gc(display, win, 0);
              XSync(display, False);
            
              /* draw one pixel near each corner of the window */
              XDrawPoint(display, win, gc, 5, 5);
              XDrawPoint(display, win, gc, 5, height-5);
              XDrawPoint(display, win, gc, width-5, 5);
              XDrawPoint(display, win, gc, width-5, height-5);
            
              /* draw two intersecting lines, one horizontal and one vertical, */
              /* which intersect at point "50,100".                            */
              XDrawLine(display, win, gc, 50, 0, 50, 200);
              XDrawLine(display, win, gc, 0, 100, 200, 100);
            
              /* now use the XDrawArc() function to draw a circle whose diameter */
              /* is 30 pixels, and whose center is at location '50,100'.         */
              XDrawArc(display, win, gc, 50-(30/2), 100-(30/2), 30, 30, 0, 360*64);
            
              {
                XPoint points[] = {
                  {0, 0},
                  {15, 15},
                  {0, 15},
                  {0, 0}
                };
                int npoints = sizeof(points)/sizeof(XPoint);
            
                /* draw a small triangle at the top-left corner of the window. */
                /* the triangle is made of a set of consecutive lines, whose   */
                /* end-point pixels are specified in the 'points' array.       */
                XDrawLines(display, win, gc, points, npoints, CoordModeOrigin);
              }
            
              /* draw a rectangle whose top-left corner is at '120,150', its width is */
              /* 50 pixels, and height is 60 pixels.                                  */
              XDrawRectangle(display, win, gc, 120, 150, 50, 60);
            
              /* draw a filled rectangle of the same size as above, to the left of the */
              /* previous rectangle.                                                   */
              XFillRectangle(display, win, gc, 60, 150, 50, 60);
            
              /* flush all pending requests to the X server. */
              XFlush(display);
            
              /* make a delay for a short period. */
              sleep(4);
            
              /* close the connection to the X server. */
              XCloseDisplay(display);
            }
            BOOOF , I AM GONE
            Still , you gotta wait for my PRESENT :D
            C programming arabic Tutorial|Programming-fr34ks

            تعليق


            • #7
              الا بسالكم فيه احد يعرف عن بيئة التطوير kdevelop
              حملتها وفيه اكثر من برنامج فيها ولاعرف كيف ابدا بتصميم البرامج
              اللسان الطويل دلالة على اليد القصيرة

              تعليق


              • #8
                Linux abo3abed
                Kdevelop يدعم اكثر من لغة ،،
                ما هي اللغة التي تريد ان تعمل عليها ؟؟

                St0rM-MaN :
                دائما تتحفنا بالاشياء الرائعة ،،
                اتمنى ان تسوي دروس عن هذا الموضوع ،، فهو مهم جدا ،، خاصة ان مكتبة Gtk,Qt تستخدم xlib

                تعليق


                • #9
                  c++ اذا ماعليك امر
                  اللسان الطويل دلالة على اليد القصيرة

                  تعليق


                  • #10
                    اهلا Linux abo3abed ،،

                    اعتذر اولا عن التأخير ،، لاني نسيت اني رديت هنا

                    ما هي المشكلة التي واجهتك ؟؟
                    الموضوع بسيط ،، افتح ال kdevelop واختر مشروع c++
                    وقم بكتابة الكود ،، ثم قم بعملية الترجمة والتشغيل .

                    هذا ان اردت كتابة برامج console

                    اما اذا اردت كتابة برامج ذات واجهات GUI ،، فيجب عليك ان تستخدم مكتبات KDE

                    وهي مكتبة مبنية على Qt،، والهدف منها هي كتابة برامج لسطح المكتب KDE

                    طبعا يجب عليك تعلم Qt اولا ثم تنتقل الى KDE ،،
                    وهي بسيطة جدا ،،

                    كذلك ان اردت الانضمام الى فريق KDE للمطورين ، فيجب عليك ان تدرس الاثنين.

                    اي خدمة ؟؟
                    واعتذر مرة اخرى عن التأخيــــــــــــــــــر
                    الى اللقاء ،،

                    تعليق

                    يعمل...
                    X