¡¡¡¡×÷ÕߣºÍõ¾°
Ò»°ãÒ»¸öÈÝÆ÷¹¹¼þÖ»ÄÜÈÝÄÉÒ»¸ö¹¹¼þ£¬Èç¹ûÒªÔÚÒ»¸öÈÝÆ÷¹¹¼þÖа²ÅŶà¸ö×Ó¹¹¼þ£¬¿ÉÏȽ«¶à¸ö×Ó¹¹¼þ·ÅÈëÒ»¸ö×éºÏ¿ò»ò×éºÏ±í¹¹¼þÄÚ£¬ÔÙ½«Õâ¸ö×éºÏ¿ò»ò×éºÏ±í¹¹¼þ·ÅÈë¸ÃÈÝÆ÷¹¹¼þ¡£
¡¡¡¡Ò»¡¢ÈçºÎ½¨Á¢Gtk+Ó¦ÓÃ
¡¡¡¡1.»ù±¾¸ÅÄî
¡¡¡¡ÔÚLinuxÉÏ¿ª·¢GUIÓ¦ÓÃÈí¼þ£¬ÎÒÃÇͨ³£ÀûÓÃGtk+¿â¡£ÎªÁËÉîÈëÁ˽âGtk+µÄÓ¦Óã¬ÎÒÃÇÊ×ÏÈÒªÃ÷È·¼¸¸ö¸ÅÄî¡£
¡¡¡¡£¨1£© ¹¹¼þ(widget)µÄ¸ÅÄî
¡¡¡¡ÔÚGtk+¿âÀïµÄ´°¿Ú¡¢Ñ¡µ¥ºÍ°´Å¥µÈÓ¦ÓÃʵÌ壬ÎÒÃdzÆ֮Ϊ¹¹¼þ£¨widget£©¡£¹¹¼þ¾ßÓÐÃæÏò¶ÔÏóµÄÌØÕ÷£¬Æä¾ßÌå½á¹¹ÓÉGtk+¿â¶¨Òå,Ëü¶ÔÔËÓù¹¼þµÄ³ÌÐòÔ±À´ËµÊÇ͸Ã÷µÄ,³ý·ÇÄãÏë´´½¨×Ô¼ºµÄ¹¹¼þ¡£ÔÚ¶Ô¹¹¼þ½øÐа²ÅÅʱ£¬ÎÒÃÇÖ»ÐèÒª¹ØÐĹ¹¼þµÄ´¦Àíº¯Êý£¬ÕâÑù×öµÄÄ¿µÄ¾ÍÊÇÒª¶ÔÓ¦ÓóÌÐòÔ±ÆÁ±Î¹¹¼þµÄϸ½Ú£¬Ê¹³ÌÐòÔ±½«¸ü¶àµÄ¾«Á¦¼¯ÖÐÔÚÓ¦Óù¦ÄÜÉÏ¡£
¡¡¡¡£¨2£© ÈÝÆ÷£¨container£©µÄ¸ÅÄî
¡¡¡¡¹¹¼þÖ÷Òª·ÖΪÁ½´óÀ࣬¼´ÈÝÆ÷Àࣨcontainer£©ºÍÔÓÀà(miscellaneous£©¡£´ó¶àÊý¹¹¼þÊôÈÝÆ÷À࣬ËüÃÇ¿ÉÒÔÏñÈÝÆ÷Ò»ÑùÈÝÄÉÆäËüµÄ¹¹¼þ¡£ÔÚ°²ÅŹ¹¼þʱ³£³£Òª×ñÑÒ»¸ö¹æÔò£º³ýÁË×éºÏ¿ò£¨box£©ºÍ×éºÏ±í£¨table£©ÕâÁ½ÖÖ¹¹¼þÍ⣬ÆäËüµÄÈÝÆ÷À๹¼þ¶¼Ö»ÄÜÈÝÄÉÒ»¸ö¹¹¼þ¡£ÔÓÀ๹¼þ±ÈÈÝÆ÷À๹¼þ¼òµ¥£¬µ«Ëü²»ÄÜÈÝÄÉÆäËü¹¹¼þ¡£
¡¡¡¡£¨3£© ÏûÏ¢¼°»Øºôº¯ÊýµÄ¸ÅÄî
¡¡¡¡³ÌÐò±ØÐëÄܶÔÓû§µÄ²Ù×÷×÷³ö·´Ó¦,ÔÚ»ùÓÚGUIµÄ³ÌÐòÉè¼ÆÖУ¬¡°ÏûÏ¢¡±»ò¡°Ðźš±ÊDZØÒªµÄ¡£Óû§µã»÷Ñ¡µ¥¡¢¸÷ÖÖ°´Å¥¡¢ÊäÈëÓû§Êý¾Ý¡¢²éѯÔËÐнá¹ûºÍÍÏ·Å£¬¶¼»á²úÉúÏûÏ¢»òÐźš£ÐźſÉÄÜÐèÒªÓÉÈí¼þÀ´¼ÓÒÔ´¦Àí£¬Õâʱ³ÌÐòÔ±¾ÍÐèÒª±àдÏûÏ¢»Øºôº¯Êý¡£ÏûÏ¢»òÐźŵĸÅÄîÀàËÆÓÚWindowsÖеÄʼþ¡£ÔÚGtk+Öо³£²úÉú¸÷ÖÖÐźţ¬Óû§²úÉúµÄ´ó¶àÊýÐźű»ºöÂÔ£¬Ö»ÓгÌÐò¹ØÐĵÄÐźţ¬³ÌÐòÖвÅÓÐÏàÓ¦µÄ´¦Àíº¯Êý±»µ÷ÓᣳÌÐòÔ±ÒªµÇ¼ÇÐźÅÓë´¦Àíº¯ÊýÖ®¼äµÄ¹Øϵ£¬¸æËßGtk+ÄÄЩÐźŻòʼþÊdzÌÐòËù¹ØÐĵġ£
¡¡¡¡2. ¹¹¼þ£¨widget£©µÄÔËÓÃ
¡¡¡¡ÔÚµ÷ÓÃGtk+µÄ¹¹¼þʱ£¬Ò»°ã½øÐÐÈçϲÙ×÷²½Ö裺
¡¡¡¡£¨1£© °üº¬Ëùµ÷Óù¹¼þµÄÍ·Îļþ
¡¡¡¡Í·Îļþͨ³£´æ·ÅÔÚ/usr/include/gtk/Ŀ¼Ï£¬¸ÃÎļþÀïÓжԹ¹¼þµÄ¶¨Òå¼°¶Ô¹¹¼þµÄ²Ù×÷º¯Êý£¬ÔÚÎÒÃÇʹÓù¹¼þʱ£¬¿ÉÒÔ¾³£ÔÚÕâ¸öĿ¼Ï²éÔĹ¹¼þº¯ÊýµÄµ÷Óøñʽ»ò²ÎÊý¡£ÎÒÃDz»±ØÈÃËùÓй¹¼þ°üº¬Í·Îļþ£¬ÒòΪ¹¹¼þµÄÍ·ÎļþÒÑ°üº¬ÔÚ¸ÃĿ¼ÏÂÒ»¸öÃûΪgtk.hµÄÎļþÀ°üº¬Õâ¸öÎļþ¾Í°üº¬ÁËËùÓй¹¼þµÄÍ·Îļþ¡£Ò»°ãϵͳ½«±àÒëµÄ°üº¬Ä¿Â¼Ö¸¶¨Îª/usr/include,ËùÒÔÎÒÃÇÖ»ÐèдÃ÷ include ¼´¿É¡£
¡¡¡¡£¨2£© ÉùÃ÷¹¹¼þ
¡¡¡¡ÉùÃ÷¹¹¼þµÄ¹ý³ÌÊÇΪÁË·ûºÏCÓïÑÔÖÐÏÈÉùÃ÷ºóʹÓõÄÔÔò¡£Ò»°ãÔÚ³ÌÐò¿ªÊ¼ÒªÉùÃ÷¹¹¼þ½á¹¹µÄÖ¸Õ룬Õâ¾ÍΪ¹¹¼þ·ÖÅäÁ˵ØÖ·¡£
¡¡¡¡£¨3£© ¹¹¼þÖ¸ÕëµÄ³õʼ»¯
¡¡¡¡µ÷Óù¹¼þµÄ´´½¨º¯Êý£¬¶Ô¹¹¼þµÄÊôÐÔ½øÐе÷Õû£¨´óС¡¢Î»ÖúÍ״̬µÈ£©£¬½Ó×ÅÏÔʾ¹¹¼þ£¬ÕâÒ»µã²»ÄܺöÂÔ£¬Èç¹ûÖ»´´½¨Á˹¹¼þÈ´ÍüÁËÏÔʾ£¨gtk_widget_show£©£¬ÔÚÓ¦ÓÃʱ£¬Óû§¾Í²»ÄÜ¿´µ½¹¹¼þ£¬Ò²¾ÍÎÞ·¨¶Ô¹¹¼þ½øÐвÙ×÷ÁË¡£
¡¡¡¡£¨4£© °²ÅŹ¹¼þµÄλÖÃÓë²ã´Î¹Øϵ
¡¡¡¡¹¹¼þÖ®¼äÍùÍùÊÇÈÝÄÉÓë±»ÈÝÄɵĹØϵ£¬Ò²¾ÍÊÇ˵ÈÝÆ÷ÄÚ»¹ÓÐÈÝÆ÷£¬²ã²ãǶÌס£Òª¼Çסһ°ãÒ»¸öÈÝÆ÷¹¹¼þÖ»ÄÜÈÝÄÉÒ»¸ö¹¹¼þ£¬Èç¹ûÒªÔÚÒ»¸öÈÝÆ÷¹¹¼þÖа²ÅŶà¸ö×Ó¹¹¼þ£¬¿ÉÏȽ«¶à¸ö×Ó¹¹¼þ·ÅÈëÒ»¸ö×éºÏ¿ò»ò×éºÏ±í¹¹¼þÄÚ£¬ÔÙ½«Õâ¸ö×éºÏ¿ò»ò×éºÏ±í¹¹¼þ·ÅÈë¸ÃÈÝÆ÷¹¹¼þ¡£×¢Ò⸸ÈÝÆ÷¹¹¼þÒªÏÈÓÚ×ÓÈÝÆ÷¹¹¼þ´´½¨£¬¸¸ÈÝÆ÷¹¹¼þµÄÏÔʾҪÔÚ×ÓÈÝÆ÷¹¹¼þµÄÏÔʾ֮ºó¡£
¡¡¡¡£¨5£© ±àдʼþ´¦Àíº¯Êý
¡¡¡¡¹¹¼þµÄÍ·ÎļþÖж¨ÒåÁ˹¹¼þÄÜÏìÓ¦µÄʼþ£¨ÏûÏ¢£©£¬µ«²¢·ÇËùÓеÄÏûÏ¢ÔÚÓ¦ÓÃÖж¼ÊdzÌÐòËù¹ØÐĵģ¬¶ÔÓÚ³ÌÐòÓ¦µ±ÏìÓ¦µÄʼþ£¬³ÌÐòԱҪд³öʼþ´¦Àíº¯Êý¡£
¡¡¡¡¶þ¡¢Ó¦ÓþÙÀý
¡¡¡¡ÎªÁ˶ÔGtk+¿âµÄÓ¦ÓÃÓÐÒ»¸ö¾ßÌåµÄÈÏʶ£¬ÈÃÎÒÃÇÀ´¿´Ò»¸ö¼òµ¥µÄÓ¦ÓÃʵÀý¡£
¡¡¡¡1. ³õʼ»¯Gtk+
¡¡¡¡Ð´Gtk+³ÌÐòÐèÒªµ÷ÓÃgtk_initº¯Êý¶ÔGtk+¿â½øÐгõʼ»¯¡£ÎÒÃÇÊ×ÏȽ«Ó¦ÓóÌÐòµÄ±äÁ¿argcºÍargv´«µÝ¸øgtk_initº¯Êý£¬²¢¼ì²éÖ÷ÒªÓÃÓÚµ÷ÊÔµÄGtk+Ñ¡Ïî¡£Èç¹ûÔÚ±äÁ¿ÁбíÖгöÏÖÈκÎÕâÑùµÄGtk+²ÎÊý£¬¾Í½«ËüÒÆÈ¥¡£ÔÚÔËÐÐgtk_initº¯Êýºó£¬ËüÃDz»Ó¦¸Ã³öÏÖÔÚÓ¦ÓóÌÐòÖС£³õʼ»¯Gtk+µÄ´úÂëÈçÏ£º
¡¡¡¡gtk_init(&&argc,&&argv);
¡¡¡¡2. ½¨Á¢¹¹¼þ
¡¡¡¡Ê×ÏÈÒª½¨Á¢µÄ¹¹¼þÊÇ´°¿Ú£¬ËüÊÇÓ¦ÓóÌÐòµÄ¶¥²ã¹¹¼þ£¬ÆäËü¹¹¼þÒ»°ã°²ÅÅÔÚ¶¥²ã´°¿ÚÖС£´°¿ÚÊÇGUI³ÌÐòµÄ»ù±¾¿ò¼Ü£¬ÔÚ´°¿ÚÀïÎÒÃÇ¿ÉÒÔΪÓû§°²ÅŸ÷ÖÖ·½±ãµÄÓ¦Óá£Ò»¸öÓ¦ÓÿÉÒÔÓÐÈô¸É¸ö´°¿Ú£¬ÕâЩ´°¿ÚÖ®¼ä¼ÈÏ໥¶ÀÁ¢£¬ÓÖÓвã´ÎµÄ¹Øϵ¡£´°¿ÚÓÐÏà¶Ô¹Ì¶¨µÄ·ç¸ñ£¬Ç°¾°É«¡¢±³¾°É«¡¢×ÖÌåºÍ×ֺŵȣ¬ÎÒÃÇÓ¦µ±±£³Ö¶¨ÖƵķç¸ñ£¬È·±£²»Ê¹Ó¦ÓÃÈí¼þÔÓÂÒ¡£
¡¡¡¡°´ÕÕÉÏÃæÌá³öµÄ¹¹¼þÔËÓò½Ö裬ÎÒÃÇ´´½¨Ò»¸ö³ÌÐòÖ÷´°¿Ú£º
¡¡¡¡/?ÉùÃ÷¹¹¼þÖ¸Õë?/
¡¡¡¡GtkWidget ?window;
¡¡¡¡/?´´½¨´°¿Ú£¬³õʼ»¯´°¿ÚÖ¸Õ룬½¨Á¢Ò»¸ö¶¥²ã´°¿Ú?/
¡¡¡¡window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
¡¡¡¡/?ÏÔʾ¹¹¼þ?/
¡¡¡¡gtk_widget_show(window);
¡¡¡¡/?µÇ¼ÇÏûÏ¢ÓëÏûÏ¢´¦Àíº¯ÊýµÄ¹Øϵ?/
¡¡¡¡gtk_signal_connect(GTK_OBJECT(window),"delete_event",GTK_SIGNAL_FUNC(close_window),NULL);
¡¡¡¡3. ¹¹¼þÀàÐ͵Äת»»
¡¡¡¡ÓÉÓÚ½¨Á¢µÄ¹¹¼þÊÇͨÓù¹¼þ£¬ÐèÒª½«Ëüת»»Îª¾ßÌåµÄÀàÐÍÒÔÊʺϵ÷ÓøüΪרÓõĺ¯Êý¡£±ÈÈ罨Á¢°´Å¥¹¹¼þº¯Êý»á·µ»ØGtkWidget Ö¸Õ룬µ«ÊÇרÓõİ´Å¥×Ó³ÌÐòÒªÇó·µ»ØGtkButtonÖ¸Õ룬ËùÒÔÔÚµ÷ÓÃרÓõİ´Å¥º¯ÊýÒÔÇ°£¬ÐèҪʹÓÃGTK_BUTTONºê½«Í¨ÓõÄGtkWidgetÖ¸Õëת»»ÎªGtkButtonÖ¸Õ롣ͨ³££¬¹¹¼þÊÇÓÉÆäËü¹¹¼þÅÉÉúµÄ£¬´°¿Ú¹¹¼þ(GtkWindow)ÊÇÓÉÈÝÆ÷¹¹¼þGtkContainerÅÉÉúµÄ£¬¶øÈÝÆ÷¹¹¼þÊÇÓÉͨÓù¹¼þÅÉÉúµÄ¡£ÔÚGtk+ÖпÉÒÔ½«¹¹¼þÖ¸Õëת»»ÎªÆ丸Àà¡¢×æÏÈÀ๹¼þµÄÈÎÒâÀàÐÍ£¬È»ºóÔÙµ÷Óø¸Àà»ò×æÏÈÀ๹¼þµÄº¯Êý¡£
¡¡¡¡4. Gtk+µÄʼþÑ»·
¡¡¡¡¶ÔGtk+½øÐгõʼ»¯²¢½«´°¿ÚµÈ¹¹¼þ°²ÅÅÔÚÆÁÄ»ÉÏÖ®ºó£¬Ó¦ÓÃÈí¼þÐèҪʹÓÃGtk+¿ªÊ¼Ö´ÐÐʼþµÄÑ»·º¯Êýgtk_main()£¬Ã»ÓÐÕâ¸öº¯Êý£¬Ó¦ÓóÌÐòÔËÐÐʱ¾Í»áÒ»ÉÁ¼´ÊÅ¡£µ«ÊÇÔÚµ÷ÓÃgtk_main_quit()º¯Êý֮ǰ¶Ôgtk_main()º¯ÊýµÄµ÷Óò¢²»·µ»Ø£¬Ò²¾ÍÊÇ˵ֻÓÐgtk_main_quit()º¯Êý²ÅÄÜÍ£Ö¹Gtk+µÄÖ´ÐУ¬´Ó¶ø×îÖÕÍ˳öÓ¦ÓóÌÐò¡£ÎÒÃÇ°Ñgtk_main_quit()º¯Êý·ÅÔÚÏûÏ¢´¦Àíº¯Êýclose_window()Ö®ÖУ¬ÕâÑù£¬µ±Óû§µã»÷ÁË´°¿ÚµÄ¹Ø±Õ°´Å¥£¬Gtk+ÊÕµ½¡°delelte_event¡±ÏûÏ¢£¬È»ºóµ÷ÓÃclose_window(),Ö´ÐÐgtk_main_quit()º¯Êý£¬Õû¸ö³ÌÐò¼´¿ÉÍ˳ö¡£
¡¡¡¡5. ʵÀýÔ´´úÂë
¡¡¡¡ÏÖÔÚ´´½¨Ò»¸öÏÔʾ¡°hello¡±×ÖÑùµÄ¼òµ¥´°¿Ú³ÌÐò¡£Õû¸ö³ÌÐòʵÏÖ´úÂëÈçÏ£º
¡¡¡¡//hello.c
¡¡¡¡include
¡¡¡¡/?¹Ø±ÕÖ÷´°¿ÚÖеÄÏûÏ¢´¦Àíº¯Êý?/
¡¡¡¡close_window(GtkWidget ?window,gpointer data)
¡¡¡¡{
¡¡¡¡/?ÖÐÖ¹gtkʼþÑ»·?/
¡¡¡¡gtk_main_quit();
¡¡¡¡}
¡¡¡¡/?Ö÷º¯Êý?/
¡¡¡¡main(int argc,char ?argv)
¡¡¡¡{/?ÉùÃ÷´°¿ÚºÍ±êÇ©Á½¸ö¹¹¼þ?/
¡¡¡¡GtkWidget ?window;
¡¡¡¡GtkWidget ?label;
¡¡¡¡/?³õʼ»¯Gtk+¿â?/
¡¡¡¡gtk_init(&&argc,&&argv);
¡¡¡¡/?³õʼ»¯window¹¹¼þ?/
¡¡¡¡window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
¡¡¡¡/?³õʼ»¯label¹¹¼þ?/
¡¡¡¡label=gtk_label_new("hello!");
¡¡¡¡/?½«±êÇ©·ÅÈë´°¿ÚÄÚ£¬º¯ÊýÄÚÓÃGTK_CONTAINERºê½«´°¿Ú¹¹?/
¡¡¡¡/?¼þµÄÖ¸ÕëÀàÐÍת»»ÎªÆ丸ÀàÈÝÆ÷¹¹¼þµÄÖ¸ÕëÀàÐÍ?/
¡¡¡¡gtk_container_add(GTK_CONTAINER(window),label);
¡¡¡¡/?ÏÔʾlabel¹¹¼þ?/
¡¡¡¡gtk_widget_show(label);
¡¡¡¡/?ÏÔʾwindow¹¹¼þ?/
¡¡¡¡gtk_widget_show(window);
¡¡¡¡/?µ±´°¿Ú»ñµÃ'delete_event'ÏûϢʱµ÷ÓÃclose_windwº¯Êý?/
¡¡¡¡gtk_signal_connect(GTK_OBJECT(window),"delete_event",
¡¡¡¡GTK_SIGNAL_FUNC(close_window),NULL);
¡¡¡¡/?gtkʼþÑ»·?/
¡¡¡¡gtk_main();
¡¡¡¡}
¡¡¡¡6. ±àÒëÔ´´úÂë¼°ÔËÐгÌÐò
¡¡¡¡×îºó̸һÏÂGtk+ÔÚ³ÌÐò±àÒëºÍÔËÐÐʱÓÐÄÄЩÌرðÖ®´¦¡£ÔÚLinuxϵͳϵÄC±àÒëÆ÷,Èçgcc£¬ÒªÇó±àÒëʱÔÚ±àÒëÃüÁîºó¼ÓÉϸ÷ÖÖ²ÎÊý£¬Èç¹û²ÎÊýÌ«¸´ÔÓ£¬×îºÃ°ÑÃüÁîдÈëmakefileÎļþ¡£
¡¡¡¡Ç°ÃæÎÒÃǽ²¹ýÔÚÓ¦ÓóÌÐòÎļþÖÐÓõ½Gtk+º¯Êý»ò¶¨ÒåµÄÿһ²¿·Ö±ØÐë°üº¬gtk/gtk.hÎļþ£¬ËüÊÇGtk+µÄÖ÷Òª°üº¬Îļþ¡£´ËÍ⣬»¹±ØÐëÁ¬½ÓÈô¸É¿â¡£Gtk+µÄ¿ª·¢ÈËԱΪÎÒÃÇÌṩÁË·½±ã¡£Ê¹ÓÃgtk-config³ÌÐò¿ÉÒÔ¼ò»¯ÕâЩ¹¤×÷¡£±àÒëhello.cÔ´Îļþ³ÉΪ¿ÉÖ´ÐÐÎļþhelloµÄÃüÁîÈçÏ£º
¡¡¡¡gcc hello.c -o hello `gtk-config -cflags``gtk-config -libs`
¡¡¡¡×¢Ò⣬³ÌÐòÖÐÒ»¶¨ÊÇ·´ÒýºÅ£¨ÔÚ¼üÅÌÉÏλÓÚ×Ö·û1µÄ×ó±ß£©¡£`gtk-config`ʵ¼ÊÔËÐÐÁËgtk-config³ÌÐò£»²ÎÊý-cflagsÊä³ö±àÒë±êÖ¾£¬²¢½«ËüÃDzåÈëÃüÁîÐУ»²ÎÊý-libsÊä³öÁ¬½Ó±êÖ¾²¢²åÈëÃüÁîÐС£ÔÚGtk+ 1.2ÒÔÉÏ°æ±¾Öаüº¬gtk-config³ÌÐò¡£ÔÚLinuxµÄÃüÁîÐÐÌáʾ·ûºóÇÃÈë`gtk-config -cflags`ºÍ`gtk-config -libs`±íʾ¸øgcc ´«µÝ²ÎÊýµÄÕýÈ··½·¨¡£
¡¡¡¡ÓÃshellÃüÁî¡°chmod -777 hello¡±½«ÎļþhelloÉ趨ΪËùÓÐÓû§¶¼¿ÉÖ´ÐеÄÎļþ£¬ÔÙÓÃshellÃüÁî¡°./hello¡±Ö´ÐÐÕâ¸öÎļþ¡£
¡¡¡¡Èý¡¢Ð¡½á
¡¡¡¡±¾ÎĽöÌṩÁ˶ÔGtk+¿âÓ¦ÓõĻù±¾Ë¼Â·£¬¶ÔÓÚÏëÀûÓÃGtk+¿ª·¢LinuxÓ¦ÓõÄC³ÌÐòÔ±À´ËµÊÇÈëÃŵÄÒ»¿Î£¬ÉîÈëµÄÓ¦ÓúͿª·¢¼¼ÇÉÐèÒª¶ÁÕßÔÚ½ñºó²»¶ÏµÄʵ¼ùÖлñµÃ¡£
yuquzou ÓÚ 2012-03-29 21:36:52·¢±í:
ÊܽÌÁË
linuxydy ÓÚ 2012-03-22 21:39:15·¢±í:
sudo apt-get build-dep gedit