Sadržaj
GTK # pomoću spremnika omogućuje nam kontrolu položaja widgeta u prozoru kako bismo mogli stvoriti dizajn. Ovi spremnici koji imaju različite karakteristike i služe za usmjeravanje dizajna i postavljanja komponenti ili widgeta unutar prozora.The glavni kontejneri su:
- Kontejneri s vodoravnim ili okomitim kutijama
- Kontejneri sa tablicama
- Fiksni spremnik
- Okviri ili spremnik okvira
Kako koristiti spremnike prema potrebama ili zahtjevima naše aplikacije
Kontejneri s vodoravnim ili okomitim kutijama
Ako smo navikli programirati u sustavu Windows i njegovoj metodologiji dizajna sučelja povlačenjem i ispuštanjem, ova vrsta spremnika vjerojatno je bolja jer su widgeti ili komponente pozicionirani u prozoru pomoću x koordinata, a kako u sustavu Windows i to se cijeni.
Iako je to moguće s Gtk -om i monodevelop -om, najbolji način za usklađivanje widgeta je s okvirima. Postoje dvije vrste kutija vodoravno ili HBox i okomito ili VBox. Ova vrsta spremnika ne ovisi o veličini zaslona. Spremnici HBox i VBox brinu se za automatsko mijenjanje veličine zone koju komponenta zauzima.
Pogledajmo primjer s vodoravnim ili okomitim okvirima. Izradit ćemo C # i Gtk projekt u Monodevelopu.
Dodjeljujemo mu Vbox spremnik i u posljednjem retku dodajemo Hbox spremnik.
Ova vrsta spremnika rešetka je s retcima i stupcima koja može biti korisna kada moramo stvoriti rešetku na koju možemo postaviti widgete, poput zaslona za unos podataka. Pogledajmo primjer s tablicom. Napravit ćemo C # i Gtk projekt u Monodevelopu, izradit ćemo obrazac za unos podataka.
Potpisujemo Vbox spremnik i u posljednjem retku dodajemo Hbox spremnik, kao što smo u prethodnom projektu dodali Menubar i donje gumbe, u sredini dodajemo spremnik tablice.
Uklonimo zadnji redak, a zatim ćemo u prvu ćeliju prvog reda dodati Vox spremnik za oznake. Zatim ćemo u drugu ćeliju prvog reda dodati Vox spremnik za unos ili tekstualne okvire.
Sada ćemo dodati a oznaka Fotografija i widget Birač datoteka Gumb za odabir datoteke. Također u treći red tablice dodat ćemo widget za slike koji će biti onaj koji će prikazati fotografiju, moramo uzeti u obzir da se slika nalazi u direktoriju kompilacije aplikacije u ovom slučaju Otklanjanje pogrešaka koji se automatski generira prilikom izvršavanja. Odabrana slika je visoka 100 x 100 piksla u širinu.
Fiksni spremnici omogućuju nam povlačenje i ispuštanje widgeta u fiksnim položajima i s fiksnim veličinama. Ovaj spremnik ne izvodi nikakvo automatsko upravljanje izgledom, niti mijenja veličinu widgeta. Koriste se u nekim aplikacijama gdje su potrebni widgeti kojima će se kasnije upravljati pomoću koda kao što su igre, specijalizirane aplikacije koje rade s dijagramima ili grafikom poput OpenGL -a ili 3D -a.
Pogledajmo primjer gdje ćemo staviti fiksni spremnik i nekoliko slika.
Okviri ili spremnik okvira
Okviri ili okviri kao u Visual Studiju koristi se kontrola Groupbox, oni se koriste za unutarnju grupu widgeta. Svrha okvira je definirati grupni widget prema kategorijama ili povezanim odjeljcima, po izboru može imati naslov. Položaj naslova i stil okvira konfigurirajte iz svojstava.
Oznaka naslova pojavljuje se u gornjem lijevom kutu okvira. Ako se ne stavi naslov, bit će prazan i naslov se neće prikazati. Tekst oznake možete promijeniti pomoću Svojstvo oznake.
U Okvir možete kombinirati bilo koji od gore navedenih spremnika i obrnuto.
Napravimo zaslon Majstor / Detalj, pomoću okvira. Stvorit ćemo a C # i Gtk projekt u Monodevelopu i potpisujemo Vbox spremnik s 4 retka i prvom redu dodajemo a Traka izbornika,
U drugi red dodajemo okvirni spremnik, naslov oznake bit će proizvodi i dodjeljujemo mu zasjenjeni obrub tipa IN.
U treći red Vbox -a stavljamo traku za razdvajanje s widgetom Horizontal Separator, a u zadnji red Vbox -a stavit ćemo drugi okvir i prikaz stabla.
javni MainWindow (): base (Gtk.WindowType.Toplevel) {Build (); // Kreiram stupce i zaglavlja prikaza stabla // Kreiram stupac proizvoda Gtk.TreeViewColumn Proizvod col = novi Gtk.TreeViewColumn (); colProducto.Title = "Proizvod"; // Kreiram stupac dionice Gtk.TreeViewColumn colStock = novi Gtk.TreeViewColumn (); colStock.Title = "Zaliha"; // Kreiram stupac cijene Gtk.TreeViewColumn pricecol = novi Gtk.TreeViewColumn (); colPrice.Title = "Cijena"; // Dodajem stupce i naslovljujem ih u treeview tvwlista.AppendColumn (colProduct); tvwlista.AppendColumn (colStock); tvwlista.AppendColumn (pricecol); // Stvaram model podataka za pohranu i dodajem tri podatka tipa teksta Gtk.ListStore store = new Gtk.ListStore (typeof (string), typeof (string), typeof (string)); // Dodjeljujem model TreeView tvwlista.Model = store; // Dodajem podatke u spremište modela.AppendValues ("TABLET SAMSUNG", "5", "175"); store.AppendValues ("MACBOOK PRO", "10", "2680"); store.AppendValues ("SEGATE DISK 1 TB", "10", "85"); // Izrađujemo ćeliju koja će prikazivati proizvod Gtk.CellRendererText productCell = novi Gtk.CellRendererText (); // Dodamo ćeliju podataka o proizvodu colProduct.PackStart (productCell, true); // Dodaj ćeliju podataka o zalihama Gtk.CellRendererText cellStock = novi Gtk.CellRendererText (); colStock.PackStart (cellStock, istina); // Dodajte ćeliju s podacima o cijenama Gtk.CellRendererText PriceCell = novi Gtk.CellRendererText (); pricecol.PackStart (priceCell, istina); // Svakom stupcu dodajemo podatkovne ćelije i redovi će se generirati // colProducto.AddAttribute (cellProducto, "text", 0); colStock.AddAttribute (cellStock, "tekst", 1); priceCol.AddAttribute (priceCell, "tekst", 2); }Zatim izvršavamo i rezultat će biti sljedeći: