Monodevelop C # i GTK spremnici i komponente

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.

Zatim ćemo dodati gumb u posljednju ćeliju Hbox -a. U svojstvima dodjeljujemo ime bt Prihvatiti a u oznaci naziv Prihvatiti.

Ako pokrenemo aplikaciju iz Pokreni izbornik> Pokreni otklanjanje pogrešaka ili ključem F5, vidjet ćemo da je gumb poravnat u gornjem lijevom dijelu zaslona budući da su ostale ćelije prazne pa se ne prikazuju.

Da bismo to riješili, možemo upotrijebiti spremnik Aligment i staviti ga na prazna mjesta, kako bismo održali dizajn prozora.

Ponovno pokrećemo aplikaciju iz izbornika Pokreni> Pokreni otklanjanje pogrešaka ili tipkom F5 vidjet ćemo da je gumb sada prikazan tamo gdje smo ga umetnuli i poštuje izgled zaslona. Sada možemo nastaviti s umetanjem drugih widgeta.

Dodajmo neke komponente poput Kalendar u središnjoj ćeliji VBox i Traka izbornika u gornjoj ćeliji Vbox, Rezultat je sljedeći:

Kontejner sa stolovima
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.

Zadani spremnik tablice ima 3 retka i 3 stupca, sada ćemo dodati Widget uzimajući u obzir da se svakoj ćeliji u tablici mijenja veličina objekta koji sadrži. Za dodavanje ili uklanjanje redaka ili stupaca desnom tipkom miša kliknite redak, a zatim idemo na tablicu opcija brisanje ili umetanje redaka ili stupaca.
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.

Možemo definirati svojstva svake kontrole kako bismo je bolje pozicionirali, u slučaju Labels, svojstvo će se morati prilagoditi Punjenje da biste ga prilagodili razini tekstualnih okvira, bit će dovoljan razmak od 5 piksela u svakoj oznaci.

Dodati ćemo potrebne komponente za registraciju i prikaz korisnikove fotografije, za njih u prvom Vboxu, desni klik na ćeliju naljepnice telefona omogućuje nam umetanje ćelije u vbox, također ćemo dodati ćeliju u drugi vbox.
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 spremnik
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.

Stavili smo Image Widget u pozadinu, drugi Image Widget u pozadini sa zrakoplovom i drugi Image widget u pozadini sa slikom golfera. Svaka je slika u fiksnoj koordinati da bismo tada mogli upravljati koordinatama pomoću koda kako bismo postigli učinak kretanja ili animacije da se radi o igri.
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.

Unutar okvira dodajemo spremnik tablice s 4 retka i 3 stupca kako bismo stvorili obrazac za unos podataka, a u zadnji središnji redak tablice stavili smo pretinac s dva okvira za gumbe Gravirati Y Otkazati.
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.

Imajte na umu da, kako bi sve bilo ispravno poravnano, moramo dodirnuti svojstvo paddinga svakog widgeta. Za popunjavanje prikaza stabla koji ćemo nazvati tvwlista upotrijebit ćemo c # kôd u klasi Mainwindows koji će biti sljedeći:
 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:

Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod
wave wave wave wave wave