Projekt Gambas Linux

Gambas je vývojové prostředí, které je distribuováno pod licencí GNU GPLDíky tomu můžeme říci, že to není jen programovací jazyk odvozený od základního jazyka, ale je to také velmi užitečný nástroj při vytváření vizuálních aplikací pro téměř jakoukoli distribuci GNU / Linux.

V Gambasu má programátor schopnost navrhovat okna graficky, přetahovat objekty z panelu nástrojů a poté psát kód v základním nastavení pro každý objekt.

Jak jsme viděli dříve, Gambas je založen na základním tlumočníkovi s rozšířeními objektů, podobně jako Visual Basic. Ale u Gambasu máme tu výhodu, že můžete rychle navrhnout svou grafickou aplikaci pomocí QT nebo GTK +, přistupovat k databázím MySQL, PostgreSQL, Firebird, ODBC a SQLite, ovládat aplikace pomocí DBUS, vytvářet frontendové příkazy Linuxu, dělat 3D OpenGL aplikace , vytvářet webové aplikace CGI, generovat mimo jiné instalační balíčky pro různé distribuce.

Z tohoto důvodu můžeme říci, že v Gambasu nejde o kopii nebo klon jazyka Visual Basic, protože navzdory tomu, že je založen na základech, je alternativou k vytváření programů a aplikací pro prostředí GNU. Podíváme -li se do historie krevet, zjistíme, že první verzi krevet vydal v roce 1999 Francouz Benoît Minisini a vytvořil prostředí, které by nám umožnilo snadno programovat a vyvíjet aplikace s grafickým uživatelským rozhraním.

Programová forma v Gambasu byla zpočátku podobná té z Gimpu, měla několik oken a byla zaměřena na používání Qt a KDE. Když v roce 2008 došlo k přechodu na verze 2.x, znamenalo to kompletní přepracování grafického programovacího rozhraní, integraci všeho do jednoho okna a umožnění použití GTK +. V roce 2011 skočil na verzi 3.x.

Začněme s Instalace Gambas3.

1. Jak nainstalovat Gambas3


Jednoduchost Gambasu umožňuje snadné použití, takže není nutné znát žádný programovací jazyk. Stačí mít bezplatný manuál a věnovat tomu nějaký čas. Z tohoto důvodu je ideální pro učení, pokud právě začínáte. Pojďme se tedy naučit, jak jej nainstalovat do našeho operačního systému Linux:

Nejprve musíme otevřít příkazový terminál a zadat tyto příkazy jeden po druhém:

 sudo add-apt-repository ppa: gambas-team / gambas-daily sudo apt-get update sudo apt-get install gambas3 
Instalační příkazy Gamby

Pomocí tohoto příkazového řádku můžeme získat nejnovější vydanou verzi Gambas. V současné době jdou na 3.8.1, i když doporučuji mít nejstabilnější verzi, kterou můžeme získat pomocí těchto dalších příkazů, ale musíme mít na paměti, že nikdy nemůžeme přidat dvě PPA současně, můžeme mít pouze jednu z těchto dvou je to proto, že bychom mohli způsobit chybu a museli bychom začít s čištěním předchozích instalací.

2. Vytvořte projekt Gambas s DB a podejte zprávu


První věc, kterou musíme udělat, je navrhnout databázi, kterou potřebujeme k ukládání našich informací. Ten, který navrhuji, se bude jmenovat „studenti“ a bude mít dvě tabulky (studenti a předměty).
 Tabulka studentů: ID, ID, jména, příjmení, adresa, telefon a e -mail. Tabulka předmětů: id, subject_name 
K tomu používáme velmi jednoduchého manažera pro návrh databáze s názvem Prohlížeč dat SQLite, otevřeme jej a vytvoříme databázi kliknutím na nové tlačítko. Vyhledáme, kam to uložíme, a vytvoříme tabulky podle předchozího návrhu.

Po vytvoření bude vypadat takto:

V obou tabulkách ponecháme pole ID jako primární klíč. Před zavřením mini-správce do něj přidáme nějaká data, abychom zkontrolovali jeho fungování při navrhování formulářů v programu. Pokud nyní můžeme kliknout na tlačítko Uložit a zavřít mini správce databázových prohlížečů.

3. Provádění programu Gambas


Otevíráme Gambas a vytváříme nový projekt s názvem a odpovídající cestou:

ZVĚTŠIT

Pro větší pohodlí umístíme databázi vytvořenou do složky vytvořené pro projekt, v tomto případě do složky s názvem GestionEstudiantes, takže to bude snadné při hledání její cesty v programu.

 „Konfigurujeme tlačítko pro ukončení. Public Sub btnCerrar_Click () Ukončit Konec 
Vytvořili jsme dvě nové formy, pro zadávání studentů a pro předměty.

Nyní nakonfigurujeme tlačítko pro zadávání studentů:

 Public Sub btnNuevoEstudiante_Click () FMain.Hide FormEstudiantes.Show End 
Také nakonfigurujeme tlačítko Přidat předmět:
 Public Sub btnNuevaAsignatura_Click () FMain.Hide FormCourses.Show End 
Takže to přidělíme.

4. Návrh formuláře pro vstup studentů


Na začátek vložíme a columview a dvě tlačítka, na která vložíme nový text a ukončíme (Vlastnost textu).

Můžeme, pokud si přejeme, přidat ikonu ke každému tlačítku prostřednictvím jeho vlastnosti obrázku. Do columview budeme tomu říkat jednoduše „stůl“ (V názvu nemovitosti) je velmi podobný jakékoli tabulce a snažíme se, aby tento první databázový projekt byl co nejjednodušší.

Zavoláme tlačítka: btnnew Y jít ven.

Formulář by vypadal takto:

Konfigurujeme tlačítko zavření formuláře.

 Public Sub btnExit_Click () Me.Close End 
Nyní přejdeme ke kódování.

5. Začali jsme kódovat Gambu


Začneme do našeho programu vkládat nějaký kód a vyjádříme se k němu. První věcí v databázi je připojení k ní. Za tímto účelem nám Gambas poskytuje Objekt připojení.

Všechno, co se v kódu objeví s jediným apostrofem, je komentář, který program nebude interpretovat.

Příklad:

 Proměnná 'Project Test Private hconn As Connection' k navázání spojení Private Function ConnectBase () As Boolean 'proměnná pro připojení, vrátí skutečnou nebo nepravdivou hodnotu Pokud hconn Null Then Return False' zkontrolujeme, že připojení není otevřené hconn = New Připojení 'Inicializujeme připojení novou metodou a poté jí předáme parametry s parametrem hconn' pro cestu databáze hconn.Host = " / home / test" hconn.Name = "students" 'název databáze hconn.Type = " sqlite3 "'typ databáze Zkuste hconn.Open ()' pokusíme se otevřít připojení, pokud se nám to nepodaří, pošleme chybovou zprávu a dáme jí hodnotu null If Error Then hconn = Null Message.Error (" Nepodařilo se připojit k databáze ") Return True Endif Return False End 
Jakmile zkopírujete výše uvedený kód, klikněte na možnost Spustit v nabídce Debug. Pokud vše půjde dobře, neměla by se objevit žádná chyba a znovu se objeví obrazovka našeho projektu. Což znamená, že připojení k naší databázi bylo vytvořeno uspokojivě.

V případě chyby jsou zde možné příčiny:

Příčiny chybyPodívejme se na typy příčin:

1. Při kopírování a vkládání kódu musíte vzít v úvahu uvozovky, které se při kopírování a vkládání často mění, a proto je aplikace nerozpozná. V tomto případě je vhodné odstranit uvozovky a umístit je ručně. Kód uvnitř uvozovek musí být ve fuchsii, aby věděl, že je správný.

2. Další možnou chybou je nevyznačení odpovídajících možností na kartě Vlastnosti projektu, které najdete kliknutím na nabídku Projekt, poté na Vlastnosti a tam na kartě Komponenty zkontrolujte, zda jsou označeny následující možnosti:

  • bg
  • gb.db
  • gb.db.sqlite3
  • gb.form
  • gb.db.mysql (To by nemělo být nutné pro databázi, kterou vytváříme, ale stejně ji označíme)

3. Další velmi častou chybou je cesta, kde máme projekt i databázi, kde jsou zvýrazněné řádky v kódu, který se má zkopírovat a vložit.

Po opravě možných chyb a kontrole, že naše aplikace funguje, přistoupíme k uzavření připojení umístěním následujícího kódu na konec.

 VEŘEJNÝ SUB uzavřené připojení () IF hconn = NULL THEN RETURN hconn.Close () hconn = NULL END 
Nejprve vidíme, že již není uzavřeno, pokud ne, zavřeme jej pomocí .zavřít

6. Zobrazit uložená data


Otevřeme formulář a uvnitř Proces formuláře a vložíme následující kód:

(Nezapomeňte zkontrolovat uvozovky, které při vkládání kódu mohly být změněny).

 Public Sub Form_Open () 'nejprve deklarujeme proměnné a vymažeme zobrazení sloupce Dim hresul jako Výsledek Dim klíč jako String Dim filtr jako String tabulka Vymazat Pokud ConnectBase () Pak se vrátí' potvrdíme spojení s databází 'definujeme vlastnosti pro zobrazení sloupců text „počet pro počet sloupců“ pro zarovnání nadpisu šířka sloupců pro šířku sloupců pro zarovnání polí. table.Columns.Count = 6 table.Columns [0] .Text = "Cedula" table.Columns [0] .Alignment = Align.Center table.Columns [0] .Width = 100 table.Columns [1] .Text = Tabulka „Jména“. Sloupce [1]. Zarovnání = tabulka Align.Center. Sloupce [1]. Šířka = 120 tabulek. Sloupce [2]. Text = tabulka „Příjmení“. Sloupce [2]. Zarovnání = tabulka Zarovnat .Sloupce [2]. Šířka = 120 tabulek. Sloupce [3] .Text = tabulka "Adresa". Sloupce [3]. Zarovnání = Align.Center tabulka. Sloupce [3]. Šířka = 120 tabulek. Sloupce [4]. Text = tabulka „Telefon“. Sloupce [4]. Zarovnání = Zarovnání.Centr. Tabulka.Sloupce [4]. Šířka = 120 tabulek. Sloupce [5]. Text = tabulka „Pošta“. Sloupce [5]. Zarovnání = Zarovnat. Vycentrovat tabulku. Sloupce [5]. Šířka = 120 hresul = hconn.Exec ("select * from students") 'Tato instrukce prohledá databázi, pokud najde data, udělá proměnnou hresul pravdivou a tudíž dostupnou (k dispozici) Do While hresul .Dostupné 'pak projde tabulkou se smyčkou do while na základě klíče (Cedula) a naplní tabulku údaji. key = hresul ["ID"] 'vytvoříme pole ID jako primární pro vyhledávání v tabulce. Přidat (heslo, heslo)' přidáme data nalezená v databázi. tabulka [klíč] [1] = hresul ["jména"] tabulka [klíč] [2] = hresul ["příjmení"] tabulka [klíč] [3] = hresul ["adresa"] tabulka [klíč] [4] = hresul ["telefon"] tabulka [klíč] [5] = hresul ["mail"] hresul.MoveNext () 'tato instrukce posune vyhledávání na další datovou smyčku' Znovu provede instrukce uvnitř smyčky, dokud nebudou další data k zobrazení. CloseConnection () 'zavře konec připojení 
Proces formuláře

Nakonec jej spustíme a zkontrolujeme jeho provoz, čímž se vrátí následující výsledek:

ZVĚTŠIT

7. Vytvořte formulář pro zadávání údajů o studentech


Nyní vytvoříme nový formulář, který nám umožní zadat data pro nové studenty, navrhovaný název je edata.

Bude mít následující objekty: 6 štítků se štítky, 6 textových polí a dvě tlačítka.

Navrhované rozložení je následující:

Chcete -li zjistit, zda je vše v pořádku, přejděte na formulář, který zobrazuje seznam studentů, a nakonfigurujte nové tlačítko následujícím způsobem:

ZVĚTŠIT

Pokud nejsou žádné chyby a vše jde dobře, pokračujme v konfiguraci nově vytvořeného formuláře pro zadávání nových údajů o studentech. Tento formulář obdrží odkaz na objekt typu spojení, v našem případě hconn proto jej umístíme na začátek naší formy.

 'Soubor třídy Gambas' nejprve nakonfigurujeme připojení Soukromé hconn jako připojení 'vytvoříme metodu runnew, která bude volána z formuláře, který obsahuje seznam studentů Public Sub runnew (data As Connection) hconn = data' pro předchozí formulář Me. Síly ShowModal () na interakci s formulářem před jeho zavřením Konec Konfigurujeme tlačítko pro zrušení: Public Sub btnCancelar_Click () Me.Close (0) End Pro zadání nových dat použijeme následující instrukci: VYZKOUŠEJTE hconn.EXEC (“ vložte do hodnot mytable (& 1, & 2, & 3, & 4, & 5. & 6) “, txtid, txtname, txlastname, txtphone, txtmobile, txtcumple) exec Pole budou volána ampersandem a odpovídající index, jak je uvedeno níže. (& 1, & 2, & 3, & 4, & 5. & 6) 
Vraťme se k předchozímu formuláři a nakonfigurujte tlačítko přijmout takto:

ZVĚTŠIT

Nejprve se pokusíme připojit k naší databázi, pokud se nám nedaří, odcházíme. Jakmile bylo dosaženo spojení, zavolali jsme metoda runnewde fdata. Protože je tento formulář zobrazen v modální podobě, tento kód čeká, až zadáme data do fdata nebo je jednoduše zavřeme.

Potom zavře připojení a zavolá metodu form_open, která znovu načte data a zobrazí provedené změny. Nyní se podíváme, jak provedeme úpravu záznamu, například pokud přítel změní mobil, stačí upravit toto pole.

Budeme využívat aktivační událost naší kontroly colunmview (tabulka) přidat tuto funkci. Tato událost se spustí dvojitým kliknutím na libovolný sloupec v tabulce.

 Public Sub table_Activate () Dim hresul As Result If table.Current = Null Then Return If ConnectBase () Then Return hresul = hconn.Edit ("students", "ID = & 1", table.Current.Key) edata.runedit ( hresul) 'Zavolejte metodu runeedit tabulky formátu edata.Current [0] = hresul ["ID"] table.Current [1] = hresul ["first names"] table.Current [2] = hresul ["příjmení "] tabulka. Aktuální [3] = hresul [" adresa "] table.Current [4] = hresul [" phone "] table.Current [5] = hresul [" mail "] closeConnection () End 
Aktivovat událost

Tučná čára volá metoda edata runedit. Protože jsme tuto metodu ještě nevytvořili, pokud se ji pokusíme spustit nyní, nebude fungovat.

Vraťme se proto k stáří a umístíme následující proměnné na začátek formuláře, aby byly přístupné z celého formuláře.

 Soukromý hconn jako připojení Soukromý hresul jako výsledek Soukromé úpravy jako booleovský 
Potom vytvořme novou metodu s názvem spustit:
 Public sub runedit (data As Result) hresul = data editing = True txtCedula.Text = hresul ["ID"] txtName.Text = hresul ["firstname"] txtName.Text = hresul ["last name"] txtAddress.Text = hresul ["adresa"] txtTelephone.Text = hresul ["telefon"] txtEmail.Text = hresul ["mail"] Me.ShowModal End 
To nám ukazuje edata s daty vybraného záznamu, abychom je mohli upravovat, a vkládá úpravy proměnných s hodnotou true. To je nutné, aby se při kliknutí používalo podmíněné prohlášení btna přijmout Rozlišujte mezi novým a upraveným.

Můžeme to vyzkoušet, i když to stále nebude fungovat, stále to chybí nastavit tlačítko přijmout, ale můžeme zkontrolovat, že nás to přenese do požadovaného formuláře.

Nakonfigurujme tlačítko přijmout, aby se změny uložily:

 Veřejné Sub btnAccept_Click () Při úpravách Pak zkuste hresul ["cedula"] = txtCedula.Text Zkuste hresul ["names"] = txtNames.Text Zkuste hresul ["příjmení"] = txtPříjmení.Text Zkuste hresul ["adresa"] = txtAddress .Text Zkuste hresul ["telefon"] = txtTelephone.Text Zkuste hresul ["mail"] = txtEmail.Text Zkuste hresul.Update Jinak Zkuste hconn.Exec ("vložte do hodnot studentů (& 1, & 2, & 3 "& 4, & 5, & 6)", txtCedula.Text, txtName.Text, txtSurname.Text, txtAddress.Text, txtTelephone.Text, txtEmail.Text) 's tímto zadáme odeslané informace Endif Me.Close () Catch Message.Error („Nelze zadat odeslaná data“) Konec 
Nyní můžeme změny uložit.

8. Konfigurace vyhledávání dat


Přidejme do formuláře tlačítko pro hledání a textové pole. Toto je nový vzhled formuláře:

ZVĚTŠIT

Tlačítko vyhledávání konfigurujeme podobným způsobem jako nové tlačítko, toto je kód:

 Public Sub btnBuscar_Click () Dim hresul As Result Dim key As String Dim filter As String table.Clear If ConnectBase () Then Return table.Columns.Count = 6 table.Columns [0] .Text = "Cedula" table.Columns [0 ] .Alignment = Align.Center table.Columns [0] .Width = 100 table.Columns [1] .Text = "Names" table.Columns [1] .Alignment = Align.Center table.Columns [1] .Width = 120 table.Columns [2] .Text = "Last name" table.Columns [2] .Alignment = Align.Center table.Columns [2] .Width = 120 table.Columns [3] .Text = "Address" table. Sloupce [3]. Zarovnání = Align.Center tabulka.Columns [3] .Width = 120 table.Columns [4] .Text = "Phone" table.Columns [4] .Alignment = Align.Center table.Columns [4] . Šířka = 120 tabulek.sloupců [5] .Text = tabulka "Pošta". Sloupce [5]. Zarovnání = tabulka Align.Center.Sloupce [5]. Šířka = 120 filtr = txtBuscar.Text hresul = hconn.Exec (" vyberte * ze studentů, kde jména jako „“ a filtrovat & „“ “) Do While hresul.Available key = hresul [" ID "] table.Add (key, key) table [key] [1] = hresul [" name res "] tabulka [heslo] [2] = hresul [" příjmení "] tabulka [heslo] [3] = hresul [" adresa "] tabulka [heslo] [4] = hresul [" telefon "] tabulka [heslo] [ 5] = hresul ["mail"] hresul.MoveNext () Loop closeConexion () End 
S tím, co jsme udělali, už v procesu můžeme mít jasno, teď uděláme to samé s formulářem pro předměty. The navrhované rozložení je následující:

Jako vždy, první věc, kterou budeme programovat, je tlačítko ukončení:

 Public Sub btnExit_Click () Me.Close End 
Nyní provedeme připojení k databázi:
 Soukromé hconn jako připojení Soukromá funkce connectbase () jako boolean Pokud hconn Null, pak návrat False hconn = nové připojení hconn.Host = " / home / test" hconn.Name = "název databáze studentů" hconn.Type = "sqlite3" 'databáze zadejte Try hconn.Open () If Error Then hconn = Null Message.Error ("Chyba při připojování databáze") Return True Endif Return False End 
Událost naplánujeme na ukončení spojení:
 Public Sub closeConexion () If hconn = Null Then Return hconn.Close () hconn = Null End 
Nyní vizualizujeme data v souboru columview, v otevřené události formuláře.

Kód je následující:

 Public Sub Form_Open () Dim hresul As Result Dim key As String Dim filter As String table2.Clear If connectbase () Then Return table2.Columns.Count = 2 table2.Columns [0] .Text = "id" table2.Columns [0 ] .Alignment = Align.Right tabulka2.Columns [1] .Text = "Název předmětu nebo kurzu" hresul = hconn.Exec ("vyberte * z předmětů") Do While hresul.Available key = hresul ["id"] table2.Add (key, key) table2 [key] [1] = hresul ["matter_name"] hresul.MoveNext () Loop closeConnection () End 
Nyní vytvoříme formulář pro přidání a / nebo úpravu dat tabulky, předmětů nebo kurzů. Navrhovaný název je adata. (subjekty údajů).

9. Naprogramujeme tlačítko zavřít

 Public Sub btnCerrar_Click () Me.Close End 
Vytvoříme odkaz na objekt typu připojení, v našem případě hconn, proto na začátek našeho formuláře adata umístíme následující kód:
 Soukromý hconn jako připojení 
Kromě toho vytvoříme metodu runnew, která bude volána z hlavního formuláře. Syntaxe je následující:
 Public Sub runnew (data As Connection) hconn = data Me.ShowModal () End 
Nyní přejdeme k formuláři pro zadání údajů subjektů a v události kliknutí na btnnuevo umístíme následující kód:
 Public Sub btnNuevo_Click () If connectbase () Then Return adata.runnew (hconn) closeConexion () Form_Open () End 
Nyní můžeme zkusit nové tlačítko uvedené formy.

Pokračujeme ve stejném formuláři a kódujeme metodu pro úpravu záznamů následujícím způsobem. Využijeme výhody naší aktivační události ovládání colunmview (tabulka) přidat tuto funkci. Tato událost se spustí dvojitým kliknutím na libovolný sloupec v tabulce.

 Public Sub table2_Activate () Dim hresul As Result If table2.Current = Null Then Return If connectbase () Then Return hresul = hconn.Edit ("předmětů", "id = & 1", table2.Current.Key) adata.runedit ( hresul) table2.Current [0] = hresul ["id"] table2.Current [1] = hresul ["matter_name"] closeConnection () End 
Pamatujte, že to nebude fungovat, dokud tuto událost nevytvoříme ve formě adata. Vraťme se proto k fdata a umístíme následující proměnné na začátek formuláře, aby byly přístupné z celého formuláře.
 SOUKROMÉ hconn AS Připojení SOUKROMÉ Hresul AS Výsledek SOUKROMÉ úpravy AS Boolean 
Vytvoříme metodu runedit, jejíž kód je následující:
 Veřejný dílčí běh (data jako výsledek) hresul = úpravy dat = True txtAsignaturas.Text = hresul ["subject_name"] Me.ShowModal End 
Nezapomeňte testovat, abyste zjistili, zda je vše v pořádku. Nyní naprogramujeme tlačítko přijmout jak následuje:
 Veřejné Sub btnAceptar_Click () Pokud provádíte úpravy, pak zkuste hresul ["subject_name"] = txtAsignaturas.Text Zkuste hresul.Update Jinak zkuste hconn.Exec ("vložte do hodnoty název_souboru (& 1)", txtAsignaturas.Text) Endif Me.Close () Catch Message.Error ("Nelze zadat odeslaná data") Konec 
Nyní naprogramujeme rutinu hledání předmětu:
 Public Sub btnBuscar_Click () Dim hresul As Result Dim key As String Dim filter As String table2.Clear If connectbase () Then Return table2.Columns.Count = 2 table2.Columns [0] .Text = "id" table2.Columns [0 ] .Alignment = Align.Right tabulka2.Columns [1] .Text = "Název předmětu nebo kurzu" filtr = txtBuscar.Text hresul = hconn.Exec ("vyberte * z předmětů, kde název_objektu jako '" & filtr & "' ") Do While hresul.Available key = hresul [" id "] table2.Add (key, key) table2 [key] [1] = hresul [" matter_name "] hresul.MoveNext () Loop closeConexion () End 
Budeme to mít připravené.

Závěry o krevetách
Pro lidi, kteří vytvořili aplikaci v jazyce Visual Basic a zajímá je programování, je to jeden z nástrojů, který vás nepochybně zaujme, a je to jasná možnost, kterou byste měli zvážit.

Díky testům, které můžeme vidět v tomto tutoriálu, vidíme, že se s ním snadno a opravdu pracuje Výroba jiné jednoduché aplikace pro Linux nezabere mnoho času.

Jak vidíme, automatické doplňování, které má krevety, je omezeno na objekt, se kterým pracujete, ne jako v případě Geany, který na vás může dát cokoli. Musíme mu dát body, protože funguje jako Java a Netbeans a bez dalších komplikací.

Takže pro ty, kteří se chtějí naučit programovat jednoduché aplikace v Linuxu a jsou zvědaví, doporučujeme Gambas3 vyzkoušet.

wave wave wave wave wave