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į.
Š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į.
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.
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.
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.
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.
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“.
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: