Button hinter Grafik

Plattformunabhängige GUIs mit wxWidgets.
Antworten
b.me
User
Beiträge: 17
Registriert: Donnerstag 4. März 2004, 16:25

Moin Moin,
ich hab ein kleine Problem...und zwar möchte ich in meiner kleinen "Anwendung" ein Bitmap als Hintergrundbild haben. Dieses Bild füllt das gesamte Fenster aus. Trotzdem möchte ich aber auch noch Button in diesem Fenster haben. :oops:
Jetzt habe ich als erstes mein Dialog Fenster erstellt, dann auf dieses das Image platziert und danach den Button (als parent ebenfalls self) darauf gelegt. Leider kann ich nun den Butten nicht sehen, wenn ich das Programm starte. Wenn ich allerdings das Imgae auskommentiere ist der Button sichtbar. Als quick and dirty hack ist mir da eingefallen einfach Panels auf das Image zu legen, diese genau so groß wie die Button zu machen und darauf dann die Button zu platzier. Sichtbar sind diese dann, allerdings kann man sie nicht anklicken :/ ... Hat jemand von euch eine Idee ? kann man eventuell das Image als Parent verwenden, wen ja wie? oder andere Lösungsvorschläge? Vielen Dank im Voraus... :lol:
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Hoi b.me

wie gerade im anderen Faden vorweggeschickt: Im Moment kann ich selber nichts ausprobieren.

Trotzdem ein paar Tipps:
Ich vermute Du mißverstehst Buttons. Das sind nämlich (in wxWidgets) tatsächlich nur "Knöpfe", die man drücken kann. D. h. wenn Du etwas drüber legst dürfte es schwierig werden, den Knopf noch "drückbar" zu machen. (Der Workaround wäre aber best. interessant ;-) .)
Was hast Du für Alternativen? Du könntest Dein Bild in verschiedene kleine Bilder zerstückeln und dann einige Segmente als Button definieren (siehe Demo: BitmapButton). Klingt vielleicht kompliziert, ist aber ganz einfach, wenn Du ein Bild z. B. mit AdobePhotoshop zerstückeln kannst mit Hilfe eines gleichmäßigen Netzes. Dann kannst Du das Gesamtbild in Deiner Anwendung in einem Panel wieder zusammenfügen und ein Bild als BitmapButton oder aktive Ebene oder so definieren. (siehe auch Demo: Generic Buttons)
Oder Du legst das Gesamtbild ins Panel und machst bestimmte Bereiche ("onClickHere") aktiv. Problem dabei: Du mußt immer wissen wie groß Dein Panel ist. Das ist zwar einfach, aber wenn Du für verschiedene Monitore arbeiten willst, kann es u. U. doch auch ziemlich aufwendig werden. (Hängt wohl von Deinem Bild ab.)

Na, vielleicht fällt noch jemandem eine Alternative ein ...

Viel Glück
Christian
b.me
User
Beiträge: 17
Registriert: Donnerstag 4. März 2004, 16:25

hi CM, erstmal vielen Dank für deine Antwort. Also eigentlich lege ich keine Grafik über den Knopf. Die Grafik wird auf das Fenster gelegt und danach soll der Button auf das Fenster gelegt werden. Das heisst nach der Reihenfolge müsste der Button sichtbar und nutzbar sein. Wenn du ein ListCtrl auf das Fenster legst und danach den Button aufs Fenster, dann siehst du auch den Button und kannst ihn klicken. Deshalb verstehe ich das nicht so ganz. Oder ich bin einfach nur nen bissl blöd und kapier auch deine Antwort grad nicht :/ ... mfg
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Oh, tut mir leid: Wer lesen kann ist klar im Vorteil! :oops:

Möchtest Du das Button neben dem Bild (z. B. untendrunter)? Dann versuche mal Sizer.
Es ist allgemein eine schlechte Idee zwei oder mehr Elemente in einem Bereich zu haben, ohne wx zu sagen, wie es damit umgehen soll: Sizer sind DIE Lösung. Dann nämlich "weiß" wx wie es die Elemente gruppieren soll. (Allerdings muß man manchmal etwas herumspielen, bevor alles so ausschaut wie man möchte.)
Möchtest Du es im Bild? Dann kannst Du vielleicht doch die Idee mit dem zerstückeltem Bild und den GenericButtons aufgreifen - das dürfte am einfachsten sein.
Dann hast Du ebenfalls nicht das Problem zwei Elemente in einem Bereich zu haben - Du kannst Dir auch dabei von Sizern helfen lassen.

Wenn alle Stricke reissen: Poste mal ein paar Zeilen Code und eine kurze Beschreibung wie Du es eigentlich haben möchtest.

Gruß,
Christian
b.me
User
Beiträge: 17
Registriert: Donnerstag 4. März 2004, 16:25

Vielen Dank für deine Mühen... ;) ich habe vorhin mit meinem Lehrer gesprochen und er meinte, es gäbe eine Möglichkeit die Grafik "durchsitig" zu machen. Das heisst der Button wäre dann sichtbar und scheinbar eine Eben höher als das Bild. Ich werd mal gucken, was ich so an Informationen dazu finde und das dann mal ausprobieren...aber jetzt muss ich mich erstmal mit Snakelets beschäfftigen...aber ich werde mich wieder melden, und wenns geklappt hat den fertigen Code hier posten... :wink: bis denn
msekler
User
Beiträge: 1
Registriert: Dienstag 27. März 2012, 10:13

Könntest du mir erklären wie man eine solche grafik durchsichtig macht?

Gruß msekler
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Ob er wohl nach sieben Jahren wieder reinschaut?
Antworten