ก้าวแรก [Vala + Gtk 3]: Hello World !!

เราจะดูในบทช่วยสอนเล็ก ๆ น้อย ๆ นี้ว่าจะทำตามขั้นตอนแรกของเรากับ Vala และ GTK3 มาเริ่มกันเลย:

การติดตั้งเครื่องมือที่จำเป็น

sudo apt-get install valac libgtk-3-dev

IDE:

เราสามารถค้นหาบรรณาธิการที่หลากหลายซึ่งเราสามารถใช้ / กำหนดค่าเป็น IDE ได้ ตัวอย่างของพวกเขาคือ รอยขีดข่วน, ข้อความประเสริฐ, Geany …ในกรณีของฉันฉันจะใช้ Scratch (ซึ่งเราสามารถพบได้ในระบบปฏิบัติการระดับประถมศึกษา)

รอยขีดข่วน

มาดูตัวอย่างทั่วไปของ Hello World! ซึ่งจะเป็นดังนี้:

จับภาพเมื่อ 2013-10-31 23:33:12 น

และรหัสจะมีลักษณะดังนี้:

จับภาพเมื่อ 2013-10-31 23:34:48 น

ตอนนี้เรามาดูรายละเอียดของโค้ด เรามีคลาสซึ่งเป็นหน้าต่าง Gtk

# เราเริ่มต้น Gtk ด้วยอาร์กิวเมนต์ Gtk.init (ref args); # เราสร้างแอปพลิเคชัน แอพพลิเคชั่น = แอพพลิเคชั่นใหม่ (); # เราวางแอปพลิเคชันไว้ตรงกลางหน้าจอ app.window_position = Gtk.WindowPosition.CENTER; # เมื่อปิดเราทำลายแอพ app.destroy.connect (Gtk.main_quit); # เราวัดหน้าต่าง app.set_default_size (100, 50); # เราสร้างปุ่มและเชื่อมต่อเหตุการณ์การคลิกปุ่มและพิมพ์สวัสดี! ปุ่ม var = ใหม่ Gtk Button.with_label ("พูดสวัสดี"); button.clicked.connect (() => {พิมพ์ ("สวัสดี! \ n");}); # เพิ่มปุ่มในแอพ app.add (ปุ่ม); # เราแสดง App / Window app.show_all ();

เมื่อคลิกที่ปุ่มเราจะได้ผลลัพธ์:

จับภาพเมื่อ 2013-10-31 23:35:58 น

เรารวบรวมและดำเนินการ:

$ valac -v lol.vala --pkg gtk + -3.0 $ ./lol

ตอนนี้ฉันปล่อยลิงค์ที่น่าสนใจไว้ให้คุณ:

http://elementaryos.org/docs/code/the-basic-setup


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   pandev92 dijo

    ปัญหาเกี่ยวกับการไม่มีอุดมการณ์ที่ดึงหน้าต่างคือคุณต้องรู้วิธีการทั้งหมดของคลาสเพื่อสร้างหน้าต่างซึ่งเป็นสิ่งดั้งเดิมจริงๆ

    1.    เหมาะสม dijo

      หากคุณทำงานได้ดีในขั้นตอนการออกแบบคุณก็ไม่มีเหตุผลที่จะใช้ IDE ในการเขียนโปรแกรม

      1.    pandev92 dijo

        คุณไม่เข้าใจฉันฉันกำลังพูดถึงการมีความคิดที่จะทำเพื่อคุณ windows โดยไม่ต้องพิมพ์รหัสในหลักการ:

        http://imagebin.org/275532

        ที่ช่วยให้คุณไม่ต้องรู้ว่าปุ่มคืออะไร ฯลฯ ฯลฯ

        1.    mariogaudix dijo

          ด้วย IDE คุณจะประหยัดเวลาเท่านั้น…… แต่ถ้าเราพูดถึงฟังก์ชันการทำงานเมื่อใช้ IDE หรือ TERMINAL ในการคอมไพล์ทั้งคู่จะทำหน้าที่เหมือนกัน
          มันเป็นเรื่องของรสนิยมและความสะดวกสบาย

        2.    อาร์ทัส dijo

          คุณมี Glade (https://glade.gnome.org/) เป็นเครื่องมือ RAD ที่ช่วยให้คุณออกแบบหน้าต่างแอพพลิเคชั่นได้อย่างรวดเร็วด้วยการคลิกเมาส์ง่ายๆ

          เมื่อสร้างอินเทอร์เฟซแล้วจะสร้างไฟล์ในรูปแบบ xml ที่คุณสามารถเรียกใช้จากภาษาโปรแกรมเช่น C, C ++, Python, Perl, Vala, Java เป็นต้น

          ฉันหวังว่านี้ตอบคำถามของคุณ.

        3.    ฮ่า ๆ dijo

          หากมีแนวคิดที่รวมตัวสร้างหน้าต่าง Anjuta IDE

  2.   พาโบลฮวน dijo

    สวัสดี Lolbimbo:
    เมื่อไม่นานมานี้ฉันตัดสินใจใช้ Vala เป็นภาษาหลักก่อน D และ Golang ด้วยเหตุผล x แต่ฉันติดปัญหารหัสที่ฉันรวบรวมได้ดีมาก แต่ตอนนี้ฉันได้รับข้อผิดพลาดต่อไปนี้:

    /media/…/vala/nn.vala.c: ในฟังก์ชัน 'main':
    /media/…/vala/nn.vala.c:155:2: คำเตือน: 'g_type_init' เลิกใช้งานแล้ว (ประกาศที่ /usr/include/glib-2.0/gobject/gtype.h:669) [-Wdeprecated-declarations]
    g_type_init();

    หากมีปัญหามากเกินไปฉันจะเข้าใจขอบคุณล่วงหน้าและขอแสดงความยินดีกับบล็อก

    1.    ฮ่า ๆ dijo

      สวัสดีเพื่อนฉันเริ่มต้นด้วย vala แต่ส่งรหัสที่คุณมีในบรรทัด 155 ให้ฉันอย่างไรก็ตามมันเป็นคำเตือนไม่ใช่ข้อผิดพลาดถ้ามันเหมาะกับคุณไม่มีอะไรเกิดขึ้นเนื่องจากอาจเป็นข้อผิดพลาดของ Vala

      1.    พาโบลฮวน dijo

        สวัสดี Lolimbo ฉันเฉลิมฉลองความกระตือรือร้นของคุณเนื่องจากฉันรู้สึกโดดเดี่ยวในวาลาอันที่จริงข้อผิดพลาดทำให้ฉันมีรหัสใด ๆ ง่ายๆเพียงแค่ใช้ Gtk

        int main (สตริง [] args) {
        Gtk.init (อาร์กิวเมนต์อ้างอิง);

        หน้าต่าง var = หน้าต่างใหม่ ();
        window.title = "GTK + โปรแกรมแรก";
        หน้าต่าง.border_width = 10;
        window.window_position = WindowPosition.CENTER;
        window.set_default_size(350, 70);
        window.destroy.connect(Gtk.main_quit);

        var button = new Button.with_label ("คลิกฉัน!");
        button.clicked.connect (() => {
        button.label = "ขอบคุณ";
        });
        ลอง {
        // โดยตรงจากไฟล์ ...
        window.icon = Gdk.Pixbuf.from_file ใหม่ ("my-app.png");
        // …หรือจากธีม
        window.icon = IconTheme.get_default () .load_icon ("แอปของฉัน", 48, 0);
        } catch (ข้อผิดพลาด e) {
        stderr.printf ("ไม่สามารถโหลดไอคอนแอปพลิเคชัน:% s \ n", e.message);
        }
        window.add (ปุ่ม);
        window.show_all();

        Gtk.main();
        0 กลับ;
        }

        แต่ระหว่างการทำงานกับ Windows และที่บ้านฉันไม่มีเวลาค้นหาข้อผิดพลาดสำหรับฉันแล้วดูเหมือนว่าจะมีปัญหากับเวอร์ชันของวาลาฉันไม่รู้

        1.    ฮ่า ๆ dijo

          การอัปเดต vala ควรลบคำเตือน

  3.   ปัสสาวะ dijo

    บทช่วยสอนนี้อธิบายได้ดีและฉันก็ชอบที่ฉันสงสัยมาตลอดว่าทำไมต้องเริ่มต้นด้วยโปรแกรม "hello world" เสมอสำหรับผู้เริ่มต้นมันจะดี แต่ผู้ที่มีประสบการณ์การเขียนโปรแกรมแล้วจะเป็นอย่างไร ทำไมไม่ระบุวิธีสร้างอินเทอร์เฟซที่มีองค์ประกอบต่างๆ (ปุ่มป้ายกำกับ ฯลฯ )

    ฉันชอบวาลาและฉันอยากเรียนรู้มัน แต่มันน่าจะสร้างสรรค์กว่านี้ถ้าจะเริ่ม "ระหว่างนั้น" มากกว่านี้ใช่ไหม?

    1.    ฮ่า ๆ dijo

      เร็ว ๆ นี้เป็นอีกหนึ่งโพสต์ระดับกลาง

  4.   ฮวนรา 20 dijo

    จาวา?

    บทช่วยสอนที่ดีอธิบายได้ดีและทุกอย่างทำให้ฉันพิจารณาใส่ vala และ gtk ไว้ในรายการสิ่งที่ต้องเรียนรู้

  5.   -ไอค- dijo

    ยอดเยี่ยมตอนนี้ฉันขอแนะนำการสอน Seed (javascript) + Gtk มันน่าสนใจมากเพราะนี่เป็นตัวเลือกอย่างเป็นทางการที่โครงการ Gnome เลือกไว้