Креирање апликације Вала + Гтк3. [1. део]

После први пост Прочитао сам коментар да би било боље започети са нечим сложенијим од „здравог света“, онда ћу направити секвенцу (Или КСНУМКС КСНУМКС) пост који креира једноставну апликацију (са вала + гтк 3).

Апликација ће се састојати од једноставне игре са вишеструким избором питања и одговора (тип Тривиа), у којој се одговор на 3 питања погрешно завршава (игра је завршена), а циљ је одговорити на што више питања, за свако питање које имате ограничено време за одговор.

Дизајн

Главни дизајн наше апликације биће:

aplikacija

Касније ћемо ставити нека дугмад која ће нам дати могућност 50% (елиминисање два погрешна одговора), замрзнути време и проследити питање. Сви они се могу користити само једном, а једном се онемогуће.

Дизајн а Код
Као што видимо у дизајну, можемо видети гтк елементе које ћемо користити:

Одговори -> Дугме.

Питање -> Ознака.

Време -> ПрогрессБар.

Погрешне / тачне тачке и питања -> Ознака.

Видимо да имамо вертикалну структуру, па ГБок можемо користити вертикално.

Код

инт маин (стринг [] аргс) {Гтк.инит (реф аргс); вар виндов = нев Гтк.Виндов (); виндов.титле = "апликација"; виндов.виндов_поситион = Гтк.ВиндовПоситион.ЦЕНТЕР; виндов.сет_дефаулт_сизе (300, 340); виндов.дестрои.цоннецт (Гтк.маин_куит); виндов.сет_бордер_видтх (10); // вертикални оквир вар бок = нови Гтк.Бок (Гтк.Ориентатион.ВЕРТИЦАЛ, 0); бок.сет_спацинг (10); // Ознака за питање вар куестион = нев Гтк.Лабел ("Питање?"); // програмска временска трака вар тиме_бар = нев Гтк.ПрогрессБар (); тимебар.сет_тект ("Време"); тиме_бар.сет_схов_тект (тачно); // Дугмад одговора вар респонсе1 = нев Гтк.Буттон.витх_лабел ("Респонсе 1"); вар респоста2 = нев Гтк.Буттон.витх_лабел ("Одговор 2"); вар респоста3 = нев Гтк.Буттон.витх_лабел ("Одговор 3"); вар респоста4 = нев Гтк.Буттон.витх_лабел ("Одговор 4"); // означава информације вар поинтс = нев Гтк.Лабел ("Поинтс: 0"); бок.пацк_старт (питање); бок.пацк_старт (тиме_бар); бок.пацк_старт (одговор1); бок.пацк_старт (респоста2); бок.пацк_старт (респоста3); бок.пацк_старт (респоста4); бок.пацк_старт (бодови); виндов.адд (кутија); виндов.схов_алл (); Гтк.маин (); ретурн 0;}

Снимка из 2013-11-02 21:44:14

За померање „времена“ користимо ГЛиб.Тимеоут где ће се активирати сваких 500 милисекунди (то је петља у којој ће се променљива која садржи вредност наше траке повећавати)

ГЛиб.Тимеоут.адд (500, () => {// Добијте тренутни напредак: // (0.0 -> 0%; 1.0 -> 100%) доубле прогресс = тиме_бар.гет_фрацтион (); // Ажурирајте траку: прогресс = прогресс + 0.01; тиме_бар.сет_фрацтион (прогресс); // Понављамо док 100% не врати напредак <1.0;});

Везе од интереса 
http://www.valadoc.org/#!wiki=index (можете пронаћи све гтк елементе са њиховим методама ...)


Оставите свој коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.

  1.   лозанотук дијо

    Врло добро, дозволите ми да вас питам како могу да направим неку врсту ТАБ-а, али вертикално, мада то не морају нужно бити картице, то могу бити дугмад или ТогглеБуттонс, али мени је потребно понашање картице, да би се при додиривању 1 њен садржај видео и друга картица је онемогућена, не знам да ли се објашњавам, остављам слику да видим можете ли ми дати неке информације да истражим. Хвала вам!

    СЛИКА: http://i.imm.io/1jURw.png

    1.    лолбимбо дијо

      „Изглед“ или промена текста (на пример)?

  2.   пандев92 дијо

    Каталонски парла

  3.   изненађен дијо

    Ово је врло добро, заправо, нешто је слично ономе што сам тражио, питање, може ли се ово питање на било који начин повезати с терминалом?
    На пример: За почетак, узимам времена за одговор, остављам га неограничено и то бих желео да радим.

    Које радно окружење желите да инсталирате?
    КДЕ
    Гноме 3
    Цимет
    јединство

    И сваки од њих који је био повезан са одговарајућом командом за инсталацију у терминалу, судо апт-гет инсталл убунту-десктоп

    1.    лолбимбо дијо

      Да, само бисте морали да напишете Процесс.спавн_цомманд_лине_асинц ("апт-гет инсталл убунту-десктоп");

      http://valadoc.org/#!api=glib-2.0/GLib.Process.spawn_command_line_sync

  4.   Саул Урибе дијо

    Одлично, свиђа ми се пост, увежбаћу (и радујем се напретку), поздрав