[Go Quickly!] Tworzymy GUI

Jest to drugi artykuł z serii Go Quickly! autorstwa Grzegorza – dziękujemy.

Do tworzenia GUI w GTK+ najwygodniejszym narzędziem jest Glade. Korzysta z niego wiele projektów, ostatnio twórcy LibreOffice przenieśli swój projekt właśnie do tego narzędzia.
Interfejs Glade’a jest prosty i wygodny. Po lewej stronie mamy zestaw widgetów, na środku formatkę, a po prawej właściwości oraz drzewo elementów umieszczonych na formatce. Warto też wspomnieć że Quickly używa GTK3 wraz z Glade’m przeznaczonym dla tej biblioteki, więc warto zwracać uwagę na to, którą wersją otwieramy nasze projekty.

Pierwszy projekt GUI

Na początek stworzymy prostą formatkę, której preferencje dostosujemy podczas tworzenia kodu. Za przykładową aplikację, którą wspólnie stworzymy posłuży nam prosty edytor tekstu. Taki program niewiele potrzebuje: pole tekstowe, menubar i statusbar dla komunikatów. Otwieramy Glade z naszym projektem (quickly design). Zauważmy że otworzyły nam się 3 formatki, z czego aktualnie otwarta jest główna formatka programu. Pozostałe od lewej to formatka okna informacji o naszym programie, następna formatka odpowiada za okno ustawień.

Kolejność zakładek

Kolejność zakładek

[KURS] Programowanie w powłoce #6 – obliczanie wyrażeń

W szóstej części kursu Programowanie w powłoce przedstawię operatory arytmetyczne.

Operatory arytmetyczne
Operator Działanie
+, – dodawanie i odejmowanie
!, ~ logiczna i bitowa negacja
** potęga
*, /, % mnożenie, dzielenie, reszta z dzielenia
<<, >> przesunięcie bitowe
<=, >=, <, >, ==, != porównania
&, ^, | bitowe AND, XOR oraz OR
&&, || logiczne AND oraz OR
wyrażenie1?wyrażenie2:wyrażenie3 wyrażenie warunkowe
=, +=, -=, *=, /=, %=, <<=, >>=, &=, ^=, |= przypisania

Przykłady

Poniższy trywialny skrypt pokazuje zastosowanie operatorów:

#!/bin/bash

x=1

[KURS] Programowanie w powłoce #5: strumienie, potoki i filtry

Nadszedł czas na kolejną część kursu Programowanie w powłoce. Dzisiaj przedstawię podstawowe informacje dotyczące strumieni, potoków oraz filtrów.

Strumienie

Procesy w systemie korzystają z trzech strumieni:

  • stdin – standardowe wejście (deskryptor 0) – przeważnie jest to klawiatura komputera.
  • stdout – standardowe wyjście (deskryptor 1) – przeważnie jest to monitor komputera,
  • stderr – standardowe wyjście błędów (deskryptor 2) – przeważnie jest to monitor komputera.

Do przekierowania używa się znaku > poprzedzonego odpowiednim deskryptorem np.:

szmitas@szmitas-ubuntu:~$ cat plik_ktorego_nie_ma.txt 2> bledy.txt
szmitas@szmitas-ubuntu:~$ cat bledy.txt
cat: plik_ktorego_nie_ma.txt: No such file or directory

Krótka analiza: poleceniem cat próbuję wyświetlić zawartość pliku, który nie istnieje – czyli wystąpi błąd, który zostaje wyłapany (2>) i przekierowany do pliku tekstowego o nazwie bledy.txt.
Inny przykład:

szmitas@szmitas-ubuntu:~/Pulpit/pliki$ ls > lista.txt
szmitas@szmitas-ubuntu:~/Pulpit/pliki$ cat lista.txt
aMule
bieganie
filmy
gry
inne
lista.txt
programowanie
programy
sterowniki
wygląd
zdjęcia

[KURS] Programowanie w powłoce #4 – pętle

[KURS] Programowanie w powłoce #4 - pętle

Czwarta część serii artykułów Programowanie w powłoce zostanie poświęcona pętlom.
Pętle służą do wielokrotnego wykonywania tego samego fragmentu kodu. W Bashu rozróżniamy następujące pętle:

  • for,
  • select,
  • while,
  • until.

Jednak zanim przejdę do opisu poszczególnych pętli, przedstawię dwa polecenia, które przydatne są w działaniu z pętlami – break oraz continue.

Break

Polecenie break przerywa wykonywanie całej pętli tzn. jeśli w trakcie wykonywania pętli napotkana zostanie owa instrukcja, działanie pętli zostaje zakończone i następuje przejście do dalszej części kodu.

[KURS] Programowanie w powłoce #3 – instrukcje warunkowe

[KURS] Programowanie w powłoce #3 - instrukcje warunkowe

Kolejny artykuł z serii „Programowanie w powłoce” poświęcony jest wyrażeniu logicznemu test, instrukcji warunkowej if oraz instrukcji wyboru case. Znajdziesz również informacje dotyczące operatorów pozwalających na formułowanie złożonych wyrażeń logicznych, które można zastosować w warunkach instrukcji if (dotyczące zarówno zmiennych jak i plików).

Schemat działania wszystkich przedstawionych instrukcji jest taki sam – w zależności od warunku zostanie wykonany ciąg poleceń. Skoro wszystkie instrukcje działają tak samo, to po co ich aż tyle? Po przeczytaniu artykułu na pewno poznasz odpowiedź na to pytanie.

Od razu uprzedzam – stosowane w zapisie spacje (w zapisie instrukcji) nie są moim wymysłem a odgórnym wymogiem języka. Jeśli ich zabraknie, skrypt nie uruchomi się!
Warto zwrócić uwagę, że instrukcja warunkowa/wyboru kończy się w momencie wpisania jej odwrotnej nazwy (dla if będzie to fi, dla caseesac). Bez tego również skrypt się nie uruchomi.

Wyrażenie warunkowe test

Wyrażenie logiczne zbliżone jest do instrukcji warunkowej if jednak nie można go rozbudować. Rozpatruje jedynie dwa warunki – wyrażenie jest prawdziwe lub fałszywe