[PyGAME]GUI Programmirung ...

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
KC25m
User
Beiträge: 65
Registriert: Freitag 14. Juli 2006, 12:11
Wohnort: Kassel
Kontaktdaten:

Mittwoch 27. Dezember 2006, 11:01

Hallo Leute ,
habe mir das bekannte PyUI besorgt und damit ein Shopsystem aufgesetzt.
Läuft soweit super nur das es zuviel resourcen friest und zuviel zeit zum anzeigen brauch :(
Teilweisse brauch der neuaufbau einer seite bis zu 5 Sec.
und frist dann bis zu 120MB Ram !

Also habe ich mich ran gesetzt um die wenigen Funktionen die wir brauchen nachzubilden.
Links , Buttons , Input , Label , Container ...
Läuft super , nur habe ich das problem das ich die Buttons und Imputboxen via rect zeichne und dadurch recht eingeschränkt bin im design.

Wie zerlege ich am besten eine BMP datei mit nen vorgefertigten Button so das ich ihm auf jede größe Skalieren kann ohne großen aufwand ?

Danke Euch schon mal.

Gruß KC
BlackJack

Mittwoch 27. Dezember 2006, 13:27

Üblicherweise macht man das indem man folgendes "Raster" benutzt:

Code: Alles auswählen

+--+-----+--+
|  |     |  |
+--+-----+--+
|  |     |  |
|  |     |  |
+--+-----+--+
|  |     |  |
+--+-----+--+
Man hat also je ein Stückchen Bild für alle vier Ecken und für den Rahmen und einen Innenbereich. Die Ecken platziert man entsprechend und die Rahmenteile werden in der Länge bzw. Breite variiert, entweder durch skalieren oder Wiederholung um den Platz aufzufüllen.
KC25m
User
Beiträge: 65
Registriert: Freitag 14. Juli 2006, 12:11
Wohnort: Kassel
Kontaktdaten:

Mittwoch 27. Dezember 2006, 14:31

Skalierung ist echt mies unter PyGames , auffüllunge wären echt super.
Wie bekomme ich ein schnelle routine hin zum auffüllen da die normale BASIC methode zu langsam ist ...

weite=64
For x in range(weite/CutBreite):
s.blit(buttenimg,(x*CutX+startX,y,(CutX,CutY,CutBreite,CutHöhe))

Arbeite leider nicht so oft mit dem bescheiden und pasten an bestimmten stellen ...

Danke schon mal
BlackJack

Mittwoch 27. Dezember 2006, 15:36

Eigentlich sollte das nicht so langsam sein. Man kann es beschleunigen indem man die Füllungen einmal in "Überbreite" erzeugt, also z.B. einen horizontalen Rahmen auf ein Surface mit Bildschirmbreite "kachelt" und dann für einen endgültigen Button ein passendes Stück aus dem grossen Surface ausschneidet. Und fertige Buttons in einer bestimmten Grösse, aber noch ohne Inhalt/Schrift könnte man sicher auch cachen.
KC25m
User
Beiträge: 65
Registriert: Freitag 14. Juli 2006, 12:11
Wohnort: Kassel
Kontaktdaten:

Mittwoch 27. Dezember 2006, 16:00

Hey stimmt könnte die Cachen ... danke für den Tip !
Wird halt nur schwirig bei Muster in der mitte ...

Aber sollte reichen wenn ich das so mache.

Danke noch mal , werde den Maximal wert rerechnen den ich brauche und dann halt als Cachfile die datei im ram halten ...

Tausend Danke an Euch :)
Antworten