Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

İlk Gtk Denememızı Yazalim Artik!

Konu, 'PHP' kısmında Turok tarafından paylaşıldı.

  1. Turok

    Turok Üye

    Kayıt:
    19 Aralık 2002
    Mesajlar:
    233
    Beğenilen Mesajlar:
    0
    Meslek:
    Kurucu Ortak, Turkcell ,Vodafone, Avea 3.Party Sof
    Şehir:
    A, A
    GTK ile MERHABA TÜRKİYE diyelim Artık değilmi?
    Önce diğer PHP-GTK ( ilgili forumdaki sayfada adreslerini verdim)
    yi indirip kuruyoruz.
    Windowsda 'C:\php-gtk\' ya kurdugumuzu varsayiyorum
    sonra Sciptimizi yazmaya geçiyoruz.
    <?php
    /*Merhaba Türkiye */
    /*code by turok*/
    /*Açılışta (yani gtk klasi yoksa) os'u buluyoruz win se gtk dllini degilse gtk so yu göreve cagiriyoruz*/

    if (!class_exists('gtk')) {

    if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN')
    dl('php_gtk.dll');
    else
    dl('php_gtk.so');
    }

    /**
    *
    *FONKSİYONLARI tanımlıyoruz
    *
    */

    /*
    * ana fonksiyonumuz bu
    */
    function merhaba()
    {
    global $pen;
    echo "Merhaba Türkiye!\n";
    $pen->bosalt();
    }


    /*
    * çıkış
    */
    function bosalt()
    {
    Gtk::main_quit();
    }

    /*
    *
    *olayı durduruyoruz
    */
    function durdur()
    {
    return false;
    }

    /* clas tanimlamasi tamam*/

    /*
    * Açılır pencereyi yaratıyoruz ve baglantilari kuruyoruz
    */
    $pen = &new GtkWindow();
    $pen->set_title('iLK GTK DENEMEM!'); /**Pencerenin başlığını yazdırıyoruz*/
    $pen->connect('bosalt','bosalt');
    $pen->connect('durdur', 'durdur');
    $pen->set_usize(250, 150); /*Pencere boyutunu ayarliyoruz*/
    $pen->set_border_width(50); /*bordur genişligi ni ayarliyoruz*/

    /*
    *merhaba fonksiyonumuz cliklendiginde(yani program acildiginda) butonu *pencereye ilave ediyoruz
    *
    */
    $buton = &new GtkButton('Merhaba Türkiye!');
    $buton->connect('clicked', 'merhaba');
    $pen->add($buton);

    /*
    *Button üzerine geldiginde açıklama toltipsi.
    */
    $tt = &new GtkTooltips();
    $tt->set_delay(200);
    $tt->set_tip($buton, 'Açiklama "Nasil Buldunuz?"', '');
    $tt->enable();

    /*
    * Tüm işlemleri yerine getirmesini söylüyoruz
    */
    $pen->show_all();

    /*Gtk ya olayi devrediyoruz. */
    Gtk::main();

    ?>

    Scriptimiz bitti simdi masaüstünde yada herhangi bir yerde bir kisayol tanimliyoruz.Burada dikkat edecegimiz nokta yolu dogru tanımlamak.
    C:\php-gtk\php_gtk.exe C:\php-gtk\merhaba.php
    Kısayolu Windowsun menusunden yapıyorsanız hedef yukardaki gibi olacak.
    Baslama Yeri olarakta C:\php-gtk\ yi göstermelisiniz.
    (Not:php_gtk.exe ve ilgili dosyalarin yukarda oldugunu varsayıyorum.Başka bir yere kurduysanız adresi dogru yazın.scriptimizi istedigimiz yere koyabiliriz.Önemli olan
    C:\php-gtk\merhaba.php seklinde yolunu göstermek.)Evet linke tıklıyoruz ve (hata yapmadı iseniz) çalısıyor.

    Kolay gelsin.
     
  2. mkarabulut

    mkarabulut Misafir

    Güzel..

    Ama herhalde en uzun 'Merhaba' örneklerinden birisi de GTK'nın kidir.. :)
     
  3. Turok

    Turok Üye

    Kayıt:
    19 Aralık 2002
    Mesajlar:
    233
    Beğenilen Mesajlar:
    0
    Meslek:
    Kurucu Ortak, Turkcell ,Vodafone, Avea 3.Party Sof
    Şehir:
    A, A
    :) :)
    Aslinda bu kadar uzun degil ben biraz uzattım
     
  4. Black_Boyss

    Black_Boyss Daimi Üye

    Kayıt:
    6 Aralık 2002
    Mesajlar:
    1,218
    Beğenilen Mesajlar:
    0
    Meslek:
    bilgisayar Teknikleri /Donanım/Tekniik destek /sis
    Şehir:
    /etc/YOZGAT
    abe şunu tam olarak acıklayın bi GTK denilen melet neri neyin nesidir ne işe yarar faydası eksisi artısı
     
  5. CrazyCat

    CrazyCat Daimi Üye

    Kayıt:
    25 Temmuz 2002
    Mesajlar:
    653
    Beğenilen Mesajlar:
    0
    Meslek:
    lecturer
    Şehir:
    Adana
    bu da ilk GTK hırsızlığı olsun bari :D

    PHP:
    <?php
    /* $Id: günler.php,v 1.0.0 strtotime ("now") stoled by CrazyCat */

    if (!class_exists('gtk')) {
            if (
    strtoupper(substr(PHP_OS03)) == 'WIN')
                    
    dl('php_gtk.dll');
            else
                    
    dl('php_gtk.so');
    }

    /*
     * Called when delete-event happens. Returns false to indicate that the event
     * should proceed.
     */
    function delete_event()
    {
            return 
    false;
    }


    /*
     * Create a new top-level window and connect the signals to the appropriate
     * functions. Note that all constructors must be assigned by reference.
     */
    $window = &new GtkWindow();
    $window->connect_object('destroy', array('gtk''main_quit'));
    $window->connect('delete-event''delete_event');

    /*
     * Create a button and connect its 'clicked' signal to destroy() function.
     */
    $button = &new GtkButton('Close');
    $button->connect_object('clicked', array('gtk''main_quit'));

    /*
     * Create a vertical layout box.
     */
    $box = &new GtkVBox(false10);
    $box->set_border_width(10);

    /*
     * Create a list widget and populate it with day names.
     */
    $list = &new GtkList();
    $list->set_selection_mode(GTK_SELECTION_BROWSE);
    foreach (
    range(17) as $day_num)
            
    $items[] = &new GtkListItem(strftime('%A'mktime(000,0,$day_num)));
    $list->append_items($items);

    /*
     * Create a scrolled window and add the list widget to it - this provides
     * automatic scrollbars.
     */
    $scrolled_window = &new GtkScrolledWindow();
    $scrolled_window->set_policy(GTK_POLICY_AUTOMATICGTK_POLICY_AUTOMATIC);
    $scrolled_window->add_with_viewport($list);

    /*
     * Add scrolled window and button to the vertical layout box.
     */
    $box->pack_start($scrolled_window);
    $box->pack_start($buttonfalse);

    /*
     * Add layout box to the window, set window attributes and show everything.
     */
    $window->add($box);
    $window->set_title('PHP Rules!');
    $window->set_name('MainWindow');
    $window->set_usize(150200);

    $kapat = &new GtkTooltips();
    $kapat->set_delay(200);
    $kapat->set_tip($button'sanirim kapatir :)''');
    $kapat->enable();

    $window->show_all();

    /* Run the main loop. */
    Gtk::main();

    ?>

    sanirim çalarken pati izi bıraktım :D açıklamaları çevirseymiydim :)

    orjinali GTK ile gelen list.php. ayları listeliyordu hoşuma gitti şimdi günleri listeliyor:) tooltip olayı da şirin oluyor diye ekledim.

    GTK nın basit bir yapısı var ama dökümantasyonları beğenmedim :( biraz uğraştıracağa benziyor.

    kolay gelsin :)
     
  6. Turok

    Turok Üye

    Kayıt:
    19 Aralık 2002
    Mesajlar:
    233
    Beğenilen Mesajlar:
    0
    Meslek:
    Kurucu Ortak, Turkcell ,Vodafone, Avea 3.Party Sof
    Şehir:
    A, A
    :) :super:
     
  7. Turok

    Turok Üye

    Kayıt:
    19 Aralık 2002
    Mesajlar:
    233
    Beğenilen Mesajlar:
    0
    Meslek:
    Kurucu Ortak, Turkcell ,Vodafone, Avea 3.Party Sof
    Şehir:
    A, A
    <img src="images/smilies/smile.gif" border="0" alt="">
    İmages olayı orda calismiyor yanliz
    [Alıntı]
    abe şunu tam olarak acıklayın bi GTK denilen melet neri neyin nesidir ne işe yarar faydası eksisi artısı

    [/Alıntı]
    Forumdaki diğer PHP-Gtk yazisini (http://forum.ceviz.net/showthread.php?s=&threadid=1845)okursan birşeyler anlarsın.
    Daha geliştirilme aşamasında ama
    Php scriptlerinin Web Servera ve browsara ihtiyac duyulmadan bilgisayarda çalıştırılması olayı.
    Windows da ve linuxda unixde türevlerinde, Platformdan bagimsiz olarak çalisabiliyor tabi yapilan uygulamada bazi sartlara dikkat etmek kaydıyla.
    Daha pekçok ekşigi var elbette ama artılarıda var.
     
  8. LoS.ToF

    LoS.ToF Daimi Üye

    Kayıt:
    11 Ağustos 2002
    Mesajlar:
    1,088
    Beğenilen Mesajlar:
    0
    Meslek:
    PHP Developer
    Şehir:
    Antalya
    Turok imzan hoş... Ayrıca PHP-GTK yerine açıkcası C# la uğraşssak :D diyorum. Zaten Sistem içi hazır dillerimiz mevcut
    Perl
    VBS
     
  9. Turok

    Turok Üye

    Kayıt:
    19 Aralık 2002
    Mesajlar:
    233
    Beğenilen Mesajlar:
    0
    Meslek:
    Kurucu Ortak, Turkcell ,Vodafone, Avea 3.Party Sof
    Şehir:
    A, A
    C# hakkinda bilgim tok . Biraz açıklama yapsaniz ilgisini cekenler olursa neden olmasin.Ama kaynak meselesi.Benim ingilizce sorunum olduğu için çok fazla detaya inemiyorum
     
  10. CrazyCat

    CrazyCat Daimi Üye

    Kayıt:
    25 Temmuz 2002
    Mesajlar:
    653
    Beğenilen Mesajlar:
    0
    Meslek:
    lecturer
    Şehir:
    Adana
    <img src="images/smilies/smile.gif" border="0" alt=""> olyı forumdan kaynaklanıyor.
    koddaki işareti smiley olarak çevirmiş :)

    GTK olayına sadece bilgi edinmek amacı ile bakmıştım sempatik görünüyor ama gelecekte nolur bilmiyorum.

    C# oldukça kullanışlı geldi bana ama bazı çekincelerim var.

    nedense hep yanlış ata oynama korkusu var içimde :) birde vakit olmayınca işler kısırdöngüye dönüyor.
     
  11. Turok

    Turok Üye

    Kayıt:
    19 Aralık 2002
    Mesajlar:
    233
    Beğenilen Mesajlar:
    0
    Meslek:
    Kurucu Ortak, Turkcell ,Vodafone, Avea 3.Party Sof
    Şehir:
    A, A
    :) Pekale Bir anket yapalim en kullanişlıya hep beraber başlayalım!
    (Gtk nın C# nin yerini tutacagini sanmiyorum elbette sadece bana daha yakin geldi simdilik)
     
  12. Black_Boyss

    Black_Boyss Daimi Üye

    Kayıt:
    6 Aralık 2002
    Mesajlar:
    1,218
    Beğenilen Mesajlar:
    0
    Meslek:
    bilgisayar Teknikleri /Donanım/Tekniik destek /sis
    Şehir:
    /etc/YOZGAT
  13. Turok

    Turok Üye

    Kayıt:
    19 Aralık 2002
    Mesajlar:
    233
    Beğenilen Mesajlar:
    0
    Meslek:
    Kurucu Ortak, Turkcell ,Vodafone, Avea 3.Party Sof
    Şehir:
    A, A
    GTK CLASS HİYERARSİsini gösteren şema
    <?php
    dl('php_gtk.' . (strstr(PHP_OS, 'WIN') ? 'dll' : 'so'));

    /* start of data generation arrays */
    $widgets_ = array(
    /*level 0*/
    array('Object'),
    /*level 1*/
    array('Widget', 'Data', 'ItemFactory'),
    /*level 2*/
    array('Misc', 'Container', 'Calendar', 'DrawingArea', 'Editable', 'Ruler',
    'Range', 'Separator', 'Preview', 'Progress'),
    array('Adjustment', 'Tooltips'),
    /*level 3*/
    array('Label', 'Arrow', 'Image', 'Pixmap'),
    array('Bin', 'Box', 'CList', 'Fixed', 'Notebook', 'Paned', 'Layout', 'List',
    'MenuShell', 'Packer', 'Socket', 'Table', 'Toolbar', 'Tree'),
    array('Curve'),
    array('Entry', 'Text'),
    array('HRuler', 'VRuler'),
    array('Scale', 'Scrollbar'),
    array('HSeparator', 'VSeparator'),
    array('ProgressBar'),
    /*level 4*/
    array('AccelLabel', 'TipsQuery'),
    array('Alignment', 'Frame', 'Button', 'Item', 'Window', 'EventBox',
    'HandleBox', 'ScrolledWindow', 'Viewport', 'Invisible'),
    array('ButtonBox', 'HBox', 'VBox'),
    array('CTree'),
    array('FontSelection'),
    array('HPaned', 'VPaned'),
    array('MenuBar', 'Menu'),
    array('SpinButton'),
    array('HScale', 'VScale'),
    array('HScrollbar', 'VScrollbar'),
    /*level 5*/
    array('AspectFrame'),
    array('ToggleButton', 'OptionMenu'),
    array('ListItem', 'MenuItem', 'TreeItem'),
    array('ColorSelectionDialog', 'Dialog', 'FileSelection',
    'FontSelectionDialog', 'Plug'),
    array('HButtonBox', 'VButtonBox'),
    array('Combo', 'Statusbar'),
    array('ColorSelection', 'GammaCurve'),
    /*level 6*/
    array('CheckButton'),
    array('CheckMenuItem', 'TearoffMenuItem'),
    array('InputDialog'),
    /*level 7*/
    array('RadioButton'),
    array('RadioMenuItem')
    );

    $row = array(0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 5, 5, 5, 5, 5, 5, 7, 9, 9,
    13, 13, 13, 13, 14, 14, 14, 23, 24, 25, 29, 30);

    $class = array(0, 0, 1, 0, 1, 3, 4, 5, 6, 7, 9, 0, 0, 1, 2, 4, 5, 8, 0, 0, 1,
    1, 2, 3, 4, 0, 1, 2, 0, 1, 1, 0, 0);
    /* end of data generation arrays */

    $window = &new GtkWindow();
    $window->set_title('The GTK Class Hierarchy');
    $window->set_position(GTK_WIN_POS_CENTER);
    $window->set_default_size(300, (gdk::screen_height()-30));
    $window->connect_object('destroy', array('gtk', 'main_quit'));

    $scrolledwindow = &new GtkScrolledWindow();
    $scrolledwindow->set_policy(GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
    $window->add($scrolledwindow);

    $ctree = &new GtkCTree(1, 0);
    $ctree->set_line_style(GTK_CTREE_LINES_SOLID);

    for($x = 0; $x < count($widgets_); $x++) {
    $sibling[$x] = array();
    switch($x) {
    case 0:
    $parent = null;
    break;
    default:
    $parent = $sibling[$row[$x-1]][$class[$x-1]];
    break;
    }
    for ($i = 0; $i < count($widgets_[$x]); $i++) {
    $widgets[0] = "Gtk".$widgets_[$x][$i];
    $sibling[$x][$i] = $ctree->insert_node($parent, $sibling[$x][],
    $widgets, 5, null, null, null, null, false, true);
    }
    }

    $scrolledwindow->add($ctree);
    $ctree->show();

    $window->show_all();
    gtk::main();

    ?>
     
  14. redial

    redial Misafir

    c# reklamini asp topicinde felan yapsak diyorum :D :D :D
    Yanlis yere dukkan acilmis izlenimi yaratiyor burda :sus:
    :hiohahoha