Selepas itu jawatan pertama Saya membaca komen bahawa lebih baik memulakan dengan sesuatu yang lebih kompleks daripada "hello world", maka saya akan membuat urutan (Atau 3 4) hantar membuat aplikasi mudah (dengan vala + gtk 3).
Aplikasi ini akan terdiri daripada permainan soal jawab pilihan mudah (jenis Trivia), di mana menjawab 3 soalan salah berakhir (permainan berakhir), dan objektifnya adalah untuk menjawab sebanyak mungkin soalan, untuk setiap soalan anda mempunyai masa yang terhad untuk membalas.
Design
Reka bentuk utama aplikasi kami adalah:
Kemudian kita akan meletakkan beberapa butang yang akan memberi kita pilihan 50% (menghilangkan dua jawapan yang salah), membekukan masa, lulus soalan. Kesemuanya hanya dapat digunakan sekali, dilumpuhkan sekali digunakan.
Reka bentuk a Kod
Seperti yang kita lihat dalam reka bentuk kita dapat melihat elemen gtk yang akan kita gunakan:
Jawapan -> Butang.
Soalan -> Label.
Masa -> ProgressBar.
Titik dan Soalan yang salah / betul -> Label.
Kita dapat melihat bahawa kita mempunyai struktur menegak oleh itu kita boleh menggunakan GBox secara menegak.
Kod
int main (string [] args) {Gtk.init (ref args); var window = Gtk.Window baru (); window.title = "aplikasi"; window.window_position = Gtk.WindowPosition.CENTER; window.set_default_size (300, 340); window.destroy.connect (Gtk.main_quit); window.set_border_width (10); // kotak menegak var box = Gtk.Box baru (Gtk.Orientation.VERTICAL, 0); box.set_spacing (10); // Label untuk soalan var question = Gtk.Label baru ("Soalan?"); // bar program masa var time_bar = Gtk.ProgressBar baru (); timebar.set_text ("Masa"); time_bar.set_show_text (benar); // Butang respons var respons1 = Gtk.Button.with_label baru ("Respons 1"); var resposta2 = Gtk.Button.with_label baru ("Balas 2"); var resposta3 = Gtk.Button.with_label baru ("Balas 3"); var resposta4 = Gtk.Button.with_label baru ("Balas 4"); // label maklumat var point = label Gtk. baru ("Poin: 0"); box.pack_start (soalan); box.pack_start (time_bar); box.pack_start (balasan1); box.pack_start (resposta2); box.pack_start (resposta3); box.pack_start (resposta4); box.pack_start (mata); window.add (kotak); window.show_all (); Gtk.main (); pulangkan 0;}
Untuk memindahkan "waktu" kami menggunakan GLib.Timeout di mana setiap 500 milisaat ia akan diaktifkan (ini adalah gelung di mana pemboleh ubah yang mengandungi nilai bar kami akan meningkat)
GLib.Timeout.add (500, () => {// Dapatkan kemajuan semasa: // (0.0 -> 0%; 1.0 -> 100%) kemajuan berganda = time_bar.get_fraction (); // Kemas kini bar: progress = progress + 0.01; time_bar.set_fraction (progress); // Ulangi sehingga kemajuan pulangan 100% <1.0;});
Pautan yang menarik
http://www.valadoc.org/#!wiki=index (anda boleh menemui semua elemen gtk dengan kaedahnya ...)
Sangat bagus, saya akan bertanya kepada anda bagaimana saya boleh membuat sejenis TABS tetapi secara menegak, walaupun tidak semestinya harus tab, mereka boleh menjadi butang atau ToggleButtons, tetapi saya memerlukan tingkah laku tab, bahawa ketika menyentuh 1 kandungannya dilihat dan tab yang lain dilumpuhkan, saya tidak tahu sama ada saya menjelaskan diri saya, saya meninggalkan gambar untuk melihat apakah anda boleh memberi saya beberapa maklumat untuk disiasat. Terima kasih!
GAMBAR: http://i.imm.io/1jURw.png
«Susun atur» atau perubahan teks (contohnya)?
Parla Catalan
Ini sangat baik sebenarnya ia serupa dengan apa yang saya cari, satu soalan, bolehkah soalan ini dihubungkan dengan terminal dengan cara apa pun?
Contohnya: Untuk memulakan saya meluangkan masa untuk menjawab saya membiarkannya tanpa had dan itulah yang ingin saya lakukan.
Persekitaran desktop apa yang anda mahu pasang?
KDE
Gnome 3
Kayu manis
Perpaduan
Dan masing-masing yang dihubungkan dengan perintah pemasangan masing-masing di terminal, sudo apt-get install ubuntu-desktop
Ya, anda hanya perlu menulis Process.spawn_command_line_async ("apt-get install ubuntu-desktop");
http://valadoc.org/#!api=glib-2.0/GLib.Process.spawn_command_line_sync
Hebat, saya suka jawatan, saya akan berlatih (dan saya melihat untuk maju), salam