Monodevelop C # ir GTK konteineriai ir komponentai

Turinys
GTK # naudojant konteinerius leidžia mums valdyti valdiklių padėtį lange, kad galėtume sukurti dizainą. Šios talpyklos, pasižyminčios skirtingomis charakteristikomis ir yra skirtos sudedamųjų dalių ar valdiklio projektavimui ir išdėstymui lange.
The pagrindiniai konteineriai yra:
  • Konteineriai su horizontaliomis arba vertikaliomis dėžėmis
  • Konteineriai su stalais
  • Fiksuotas konteineris
  • Rėmai arba rėmo konteineris

Kaip naudoti konteinerius pagal mūsų programos poreikius ar reikalavimus
Konteineriai su horizontaliomis arba vertikaliomis dėžėmis
Jei esame įpratę programuoti sistemoje „Windows“ ir jos vilkimo ir nuleidimo sąsajos projektavimo metodiką, tokio tipo talpykla tikriausiai yra geresnė, nes valdikliai ar komponentai yra išdėstyti lange naudojant x koordinates ir kaip tai yra „Windows“.
Nors tai įmanoma naudojant „Gtk“ ir „monodevelop“, geriausias valdiklių suderinimo būdas yra langeliai. Yra dviejų tipų dėžės horizontaliai arba HBox ir vertikaliai arba VBox. Šio tipo konteineriai nepriklauso nuo ekrano dydžio. „HBox“ ir „VBox“ konteineriai rūpinasi automatiniu zonos, kurią užima komponentas, dydžio keitimu.
Pažiūrėkime pavyzdį su horizontaliais arba vertikaliais langeliais. Mes sukursime C # ir Gtk projektą „Monodevelop“.
Mes priskiriame jam Vbox konteinerį ir paskutinėje eilutėje pridedame Hbox konteinerį.

Tada mes pridėsime mygtuką paskutiniame „Hbox“ langelyje. Ypatybėse mes priskiriame pavadinimą bt Sutikti ir etiketėje pavadinimas Sutikti.

Jei paleisime programą iš Vykdyti meniu> Pradėti derinimą arba su raktu F5, pamatysime, kad mygtukas yra sulygiuotas viršutinėje kairėje ekrano srityje, nes kitos ląstelės yra tuščios, todėl jos nerodomos.

Norėdami tai išspręsti, mes galime naudoti „Aligment“ konteinerį ir įdėti jį į tuščias vietas, kad išlaikytume lango dizainą.

Dar kartą paleisime programą iš meniu Vykdyti> Pradėti derinimą arba naudodami klavišą F5 pamatysime, kad mygtukas dabar rodomas ten, kur jį įdėjome, ir laikosi ekrano išdėstymo. Dabar galime toliau įterpti kitus valdiklius.

Pridėkime keletą komponentų, tokių kaip Kalendorius centrinėje ląstelėje „VBox“ ir Meniu juosta viršutinėje ląstelėje „Vbox“, Rezultatas toks:

Konteineris su stalais
Šio tipo talpykla yra tinklelis su eilutėmis ir stulpeliais, kurie gali būti naudingi, kai reikia sukurti tinklelį, kuriame galime patalpinti valdiklius, pvz., Duomenų įvedimo ekraną. Pažiūrėkime pavyzdį su lentele. Sukursime C # ir Gtk projektą „Monodevelop“, sukursime duomenų įvedimo formą.
Mes pasirašome „Vbox“ konteinerį ir paskutinėje eilutėje pridedame „Hbox“ konteinerį, kaip ir ankstesniame projekte pridedame meniu juostą ir žemiau esančius mygtukus, centre pridedame stalo konteinerį.

Numatytasis lentelės sudėtinis rodinys turi 3 eilutes ir 3 stulpelius, dabar pridėsime valdiklį atsižvelgdami į tai, kad kiekvienos lentelės ląstelės dydis pakeistas į jame esantį objektą. Norėdami pridėti arba pašalinti eilutes ar stulpelius, dešiniuoju pelės mygtuku spustelėkite eilutę ir tada einame į parinkčių lentelę ištrinti arba įterpti eilutes ar stulpelius.
Pašalinkime paskutinę eilutę, o tada pirmosios pirmosios eilutės langelyje pridėsime etikečių „Vox“ konteinerį. Tada antrame pirmosios eilutės langelyje pridėsime „Vox“ konteinerį įrašui arba teksto laukams.

Mes galime apibrėžti kiekvieno valdiklio ypatybes, kad jis būtų geriau išdėstytas, jei tai yra etiketės, nuosavybė turės būti pakeista Paminkštinimas kad pritaikytumėte jį teksto laukelių lygiui, užteks 5 taškų užpildymo kiekvienoje etiketėje.

Mes pridėsime reikiamus komponentus, kad užregistruotume ir parodytume vartotojo nuotrauką, jiems pirmoje „Vbox“, dešiniuoju pelės klavišu spustelėję telefono etiketės langelį, galime įterpti langelį į „vbox“, taip pat pridėsime langelį prie kitas vbox.
Dabar pridėsime a etiketė Nuotrauka ir valdikliui Failų parinkiklis Mygtukas failui pasirinkti, Taip pat trečioje lentelės eilutėje pridėsime vaizdo valdiklį, kuris parodys nuotrauką, turime atsižvelgti į tai, kad šiuo atveju vaizdas yra programos kompiliacijos kataloge Derinimas kuris generuojamas automatiškai vykdant. Pasirinktas vaizdas yra 100 pikselių aukščio ir 100 pikselių pločio.

Fiksuotas konteineris
Fiksuoti konteineriai leidžia vilkti ir numesti valdiklį fiksuotose padėtyse ir fiksuoto dydžio. Šis sudėtinis rodinys neatlieka jokio automatinio išdėstymo valdymo ir nekeičia valdiklių dydžio. Jie naudojami kai kuriose programose, kur reikalingi valdikliai, kurie vėliau bus valdomi kodu, pvz., Žaidimai, specializuotos programos, veikiančios su diagramomis ar grafika, pvz., „OpenGL“ ar 3D.
Pažiūrėkime pavyzdį, kuriame įdėsime fiksuotą konteinerį ir kelis vaizdus.

Mes įdėjome vaizdo valdiklį fone, kitą vaizdo valdiklį fone su lėktuvu ir kitą vaizdo valdiklį fone su golfo žaidėjo atvaizdu. Kiekvienas vaizdas yra fiksuotos koordinatės, kad galėtume valdyti koordinates pagal kodą, kad pasiektume judesio ar animacijos efektą, jei tai būtų žaidimas.
Rėmai arba rėmo konteineris
Rėmeliai arba rėmeliai, kaip ir „Visual Studio“, naudojamas „Groupbox“ valdiklis, jie naudojami valdiklio grupei viduje. Rėmelio tikslas yra apibrėžti grupės valdiklį pagal kategorijas ar susijusias dalis, pasirinktinai jis gali turėti pavadinimą. Pavadinimo pozicija ir langelio stilius konfigūruojami iš ypatybių.
Pavadinimo etiketė rodoma viršutiniame kairiajame kadro kampe. Jei nėra pavadinimo, jis bus tuščias ir pavadinimas nebus rodomas. Etiketės tekstą galima pakeisti naudojant Etiketės nuosavybė.
A Rėmas galite sujungti bet kurį iš aukščiau išvardytų konteinerių ir atvirkščiai.
Sukurkime ekraną Meistras / detalė, naudojant rėmus. Mes sukursime a „C #“ ir „Gtk“ projektas „Monodevelop“ ir mes pasirašome „Vbox“ konteinerį su 4 eilutėmis, o pirmoje eilutėje pridedame a Meniu juosta,
Antroje eilutėje pridedame rėmelio talpyklą, etiketės pavadinimas bus produktai ir priskiriame jai tamsesnį kraštinės tipą IN.

Rėmo viduje pridedame lentelės konteinerį su 4 eilutėmis ir 3 stulpeliais, kad sukurtume duomenų įvedimo formą, o paskutinėje centrinėje lentelės eilutėje įdedame Hbox su dviem langeliais mygtukams Graviruoti Y Atšaukti.
Trečioje „Vbox“ eilutėje įdedame skiriamąją juostą su valdikliu „Horizontal Separator“, o paskutinėje „Vbox“ eilutėje įdėsime kitą rėmelį ir „Treeview“.

Atminkite, kad norėdami viską tinkamai suderinti, turime paliesti kiekvieno valdiklio užpildymo savybę. Norėdami užpildyti „Treeview“, kurią vadinsime „tvwlista“, „Mainwindows“ klasėje naudosime c # kodą, kuris bus toks:
 public MainWindow (): bazė (Gtk.WindowType.Toplevel) {Build (); // Aš kuriu medžio rodinio stulpelius ir antraštes // Aš sukuriu produkto stulpelį Gtk.TreeViewColumn Product col = new Gtk.TreeViewColumn (); colProducto.Title = "Produktas"; // Aš sukuriu atsargų stulpelį Gtk.TreeViewColumn colStock = new Gtk.TreeViewColumn (); colStock.Title = "Atsargos"; // Aš sukuriu kainų stulpelį Gtk.TreeViewColumn pricecol = new Gtk.TreeViewColumn (); colPrice.Title = "Kaina"; // Pridedu stulpelius ir pavadinu juos medžio peržiūros tvwlista.AppendColumn (colProduct); tvwlista.AppendColumn (colStock); tvwlista.AppendColumn (pricecol); // Aš sukuriu duomenų modelį, kurį reikia saugoti ir kur pridedu tris tekstinio tipo duomenis Gtk.ListStore store = new Gtk.ListStore (typeof (string), typeof (string), typeof (string)); // Aš priskiriu modelį TreeView tvwlista.Model = store; // Pridedu duomenis prie modelių parduotuvės.AppendValues ​​("TABLET SAMSUNG", "5", "175"); store.AppendValues ​​(„MACBOOK PRO“, „10“, „2680“); store.AppendValues ​​(„SEGATE DISK 1 TB“, „10“, „85“); // Sukuriame langelį, kuriame bus rodomas produktas Gtk.CellRendererText productCell = new Gtk.CellRendererText (); // Pridedame produkto duomenų langelį colProduct.PackStart (productCell, true); // Pridėti akcijų duomenų langelį Gtk.CellRendererText cellStock = new Gtk.CellRendererText (); colStock.PackStart (cellStock, true); // Pridėti kainų duomenų langelį Gtk.CellRendererText PriceCell = new Gtk.CellRendererText (); pricecol.PackStart (priceCell, tiesa); // Prie kiekvieno stulpelio pridedame duomenų langelius ir eilutės bus sugeneruotos // colProducto.AddAttribute (cellProducto, "text", 0); colStock.AddAttribute (cellStock, "text", 1); priceCol.AddAttribute (priceCell, "text", 2); } 
Toliau vykdome ir rezultatas bus toks:

Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką
wave wave wave wave wave