후 첫 번째 게시물 "hello world"보다 더 복잡한 것으로 시작하는 것이 더 낫다는 의견을 읽은 다음 시퀀스를 만들 것입니다 (O 3 4) 간단한 애플리케이션 생성 후 (vala + gtk 3 사용).
응용 프로그램은 간단한 객관식 질문 및 답변 게임 (트리 비아 유형)으로 구성되며, 3 개의 질문에 오답 (게임 종료) 답변이 끝나고 시간이 제한된 각 질문에 대해 최대한 많은 질문에 답변하는 것이 목표입니다. 댓글.
디자인
우리 응용 프로그램의 주요 디자인은 다음과 같습니다.
나중에 우리는 50 % (오답 XNUMX 개 제거), 시간 고정, 질문 통과 옵션을 제공하는 몇 가지 버튼을 넣을 것입니다. 모두 한 번만 사용할 수 있으며 한 번 사용하면 비활성화됩니다.
디자인 암호
디자인에서 볼 수 있듯이 사용할 gtk 요소를 볼 수 있습니다.
답변-> 버튼.
질문-> 레이블.
시간-> ProgressBar.
틀린 / 정답 포인트 및 질문-> 라벨.
수직 구조를 가지고 있으므로 GBox를 수직으로 사용할 수 있습니다.
암호
int main (string [] args) {Gtk.init (ref args); var window = new Gtk.Window (); window.title = "앱"; window.window_position = Gtk.WindowPosition.CENTER; window.set_default_size (300, 340); window.destroy.connect (Gtk.main_quit); window.set_border_width (10); // 수직 상자 var box = new Gtk.Box (Gtk.Orientation.VERTICAL, 0); box.set_spacing (10); // 질문에 대한 레이블 var question = new Gtk.Label ( "Question?"); // 진행 시간 막대 var time_bar = new Gtk.ProgressBar (); time_bar.set_text ( "시간"); time_bar.set_show_text (true); // 응답 버튼 var response1 = new Gtk.Button.with_label ( "Response 1"); var resposta2 = new Gtk.Button.with_label ( "응답 2"); var resposta3 = new Gtk.Button.with_label ( "응답 3"); var resposta4 = new Gtk.Button.with_label ( "응답 4"); // 레이블 정보 var points = new Gtk.Label ( "Points : 0"); box.pack_start (질문); box.pack_start (시간 _ 바); box.pack_start (reply1); box.pack_start (resposta2); box.pack_start (resposta3); box.pack_start (resposta4); box.pack_start (포인트); window.add (상자); window.show_all (); Gtk.main (); 반환 0;}
"시간"을 이동하기 위해 500 밀리 초마다 활성화되는 GLib.Timeout을 사용합니다 (바 값을 포함하는 변수가 증가하는 루프입니다).
GLib.Timeout.add (500, () => {// 현재 진행률 가져 오기 : // (0.0-> 0 %; 1.0-> 100 %) double progress = time_bar.get_fraction (); // 바 업데이트 : progress = progress + 0.01; time_bar.set_fraction (progress); // 100 % return progress <1.0;}까지 반복합니다.
관심 링크
http://www.valadoc.org/#!wiki=index (메소드로 모든 gtk 요소를 찾을 수 있습니다 ...)
아주 좋습니다. TABS 종류를 어떻게 만들 수 있는지 물어 보겠습니다. 세로로 꼭 탭일 필요는 없지만 버튼이나 ToggleButton이 될 수 있지만 탭의 동작이 필요합니다. 이 표시되고 다른 탭이 비활성화되어 있습니다. 내가 직접 설명하는지 모르겠습니다. 조사 할 정보를 제공 할 수 있는지 확인하기 위해 이미지를 남깁니다. 감사합니다!
영상: http://i.imm.io/1jURw.png
"레이아웃"또는 텍스트 변경 (예 :)?
카탈로니아 어 parla
이것은 사실 제가 찾던 것과 비슷한 질문입니다.이 질문이 어떤 식 으로든 터미널에 연결될 수 있습니까?
예를 들면 : 시작하려면 시간을내어 대답을 무제한으로 남겨두면 제가하고 싶은 일입니다.
어떤 데스크탑 환경을 설치 하시겠습니까?
KDE
그놈 3
계피
통일
그리고 이들 각각은 터미널의 각각의 설치 명령에 링크되어 있습니다. sudo apt-get install ubuntu-desktop
예, Process.spawn_command_line_async ( "apt-get install ubuntu-desktop");
http://valadoc.org/#!api=glib-2.0/GLib.Process.spawn_command_line_sync
우수, 게시물이 마음에 들어 연습 할 것입니다 (그리고 기대합니다), 인사