Permalänk
Inaktiv

GUI Programmering

Tittat lite på GUI programmering. Finns massa färdiga komponenter som knappar och dylikt men om jag vill göra egna komponenter eller ändra utseende.. vart ska jag göra dem? Skulle var lite trevligt att ha ett exempel när någon gör en egen GUI bara för att se hur jag ska attackera problemet.

Använt mig av python + gtk och java dess bibliotek i mina små test att sätta ut de färdiga komponenter men blir ju inte något konkret än så länge.

Permalänk
Medlem

Använder du dig av t.ex. Pythons TKinter eller javas swing så kan du ju fortfarande ändra bakgrundsbilder, stolekar etc etc... är det de du menar eller vill du göra allting från scratch?

Permalänk
Inaktiv
Skrivet av Pomser:

Använder du dig av t.ex. Pythons TKinter eller javas swing så kan du ju fortfarande ändra bakgrundsbilder, stolekar etc etc... är det de du menar eller vill du göra allting från scratch?

Tror jag menar att jag vill göra det från scratch.

Permalänk
Medlem

Ok då kommer det vara väldigt svårt och tidskrävande men såklart inte omöjligt. Dock så är det utanför min kunskapsbredd så vi får hoppas på att någon annan hoppar in som kan något mer

Permalänk
Hedersmedlem

Det finns en väldigt stor applikation i att program ser ut "ungefär på samma sätt", på så vis att en användare direkt förstår vad som är en knapp, vad som är en flervalsbox, etc. Visst fattar man det säkert snabbt ändå med en egen konstruktion, men det handlar om att en användare utan att behöva tänka på det blir en del av gränssnittet, vilket är en stor del i vad som definierar ett "bra" gränssnitt. Det finns en anledning till att mer eller mindre alla stora program strävar efter att använda menyrader och en mängd andra gemensamma element som är likriktade genom hela operativsystemet/GUI-biblioteket.

Det om det, en annan aspekt är att det säkerligen är nyttigt att först lära sig att använda färdiga byggstenar i vanligen använda GUI-bibliotek. När man känner sig säker på hur man hanterar dessa så kanske det kan vara aktuellt att börja experimentera med egna konstruktioner, men jag tror det är ineffektivt inlärande att börja från andra hållet. Det finns gott om tankefällor att upptäcka även om man använder standardfunktioner

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Inaktiv
Skrivet av phz:

Det finns en väldigt stor applikation i att program ser ut "ungefär på samma sätt", på så vis att en användare direkt förstår vad som är en knapp, vad som är en flervalsbox, etc. Visst fattar man det säkert snabbt ändå med en egen konstruktion, men det handlar om att en användare utan att behöva tänka på det blir en del av gränssnittet, vilket är en stor del i vad som definierar ett "bra" gränssnitt. Det finns en anledning till att mer eller mindre alla stora program strävar efter att använda menyrader och en mängd andra gemensamma element som är likriktade genom hela operativsystemet/GUI-biblioteket.

Det om det, en annan aspekt är att det säkerligen är nyttigt att först lära sig att använda färdiga byggstenar i vanligen använda GUI-bibliotek. När man känner sig säker på hur man hanterar dessa så kanske det kan vara aktuellt att börja experimentera med egna konstruktioner, men jag tror det är ineffektivt inlärande att börja från andra hållet. Det finns gott om tankefällor att upptäcka även om man använder standardfunktioner

Hade tänkt som en början bygga en simpel liten musik spelare.. anser att de knappar och andra komponenter jag behöver finns i standard utbudet och undrar mer hur jag ska skapa de nya komponenterna?

T.ex. hur skulle jag göra en seekbar med egen design? Gissar att jag har en "canvas" där jag ritar upp den och för varje "cycle" ändrar den med positionen av låten?

Permalänk
Hedersmedlem
Skrivet av anon159752:

Hade tänkt som en början bygga en simpel liten musik spelare.. anser att de knappar och andra komponenter jag behöver finns i standard utbudet och undrar mer hur jag ska skapa de nya komponenterna?

T.ex. hur skulle jag göra en seekbar med egen design? Gissar att jag har en "canvas" där jag ritar upp den och för varje "cycle" ändrar den med positionen av låten?

Det du bör titta på är hur ditt GUI-bibliotek är strukturerat. Objektorienterade GUI-bibliotek är ofta rätt likartat uppbyggda. Man brukar börja med några lager av basklasser som alla GUI-objekt ärver, för att sedan successivt specialisera sig i olika riktningar. För varje steg fastlägger man hur olika funktionalitet ska implementeras, t ex allokeringsbarhet genom egen garbage collector, kapsling av meddelanden till och från systemet, eller hur och när komponenten ska ritas och uppdateras.

Den knapp du ser "ytterst" i din verktygslåda är helt enkelt bara ett standardexempel, där man ärvt grundfunktionaliteten från t ex en knapp som saknar definition av utseende eller hur den ska animeras när man trycker på den.

Att skapa en knapp med helt egen design, kanske animerad, delvis transparent, eller som reagerar på ett annat sätt än att tryckas in när den klickas på gör du då genom att ärva av en lämplig basklass någonstans ur hierarkien. Lämpligen den mest specialiserade klassen som ännu inte implementerat de funktioner du vill göra själv.

Visa signatur

Religion och vidskepelse är smittsamma psykiska sjukdomar, den biologiska motsvarigheten till datorvirus.
"-Pappa, pappa, idag firade vi födelsedag och hela dagis fick gå på McDonalds. - Vems födelsedag då? - En farbror som hette Lenin."