wxWidgets - Frames?
Übersicht

#ReaperNewsposterBetreff: wxWidgets - Frames? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich beschäftige mich nun seit kurzem mit wxWidgets/wxMax. Habe nun endlich mal herausgefunden, wie ich ein Fenster/Frame erstelle, wo man nicht die Größe verändern kann, was mich auch freut. ^^ Nun habe ich aber wieder ein Problem. In MaxGUI ist es ja möglich, ein Fenster mit der Größe von z.B. 400x300 zu erstellen, ohne das der Rahmen etc. beachtet wird. Nur weiß ich nicht, wie ich das in wxWidgets hinbekomme. Weil wenn ich z.B. ein Button unten rechts haben will, kann es zu Problemen kommen, wenn der User einen anderen Windows oder Linux-Style benutzt.
Kann mir da jemand helfen? Danke für die Aufmerksammkeit^^ MfG #Reaper |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich empfehle im englischen Thread bzw. der Google Group dazu fragen, da die der "offizielle" Ort für wxMax Fragen sind. Hier werden nur die wenigsten dieses "Monster" nutzen ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Naja, ok, einen Versuch war es wert ![]() Werde dann mal im englischem Board ein wenig nerven ![]() Zu deinem Edit (ja, er ist mir noch aufgefallen ![]() ![]() |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es ist mächtiger und Crossplattform konsistent, da stimm ich dir zu ![]() Aber für anfänger aufgrund der Eventhandler etc einiges schwerer zu handhaben. Die meisten rallen ja nicht mal wie EventHooks funktionieren, was eine "simple" vorstufe davon ist. Da ich jedoch LogicUI besitze muss ich sagen, kann ich in 1h mit MaxGUI dinge erreichen die in wx leider länger dauern. Da müsste es erst eine wx Version von LogicUI geben oder einen ähnlichen editor. Das wär dann der überhammer ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hmm... Schon möglich. Habe kein LogicUI, habe es allerdings mal getestet. Sowas wäre für wxMax durchaus lohnenswert, aber wäre auch sehr aufwenig, da es dort ja eben auch so sehr viele GUI-Elemente gibt ![]() ![]() |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das ist es auch für MaxGUI ...
Man muss ja nicht jeden kleinen blödsinn unterstützen, das tun ja net ma kommerzielle 100USD wx editoren. Nur nutzen die halt nix, da die den eventhandlercode in C++ exportieren, was wertlos ist da man keine BM objekte nach extern geben kann (oder sollte wenn man net auf probleme steht) |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da ich so ein crossplatform GUI Ding gerade brauch...
Gibt es dafür einen hübschen kostenloser Designer? Ausprobieren kann ich es gerade noch nicht, denn MinGW ist noch kräftig mit dem Source beschäftigt ^^ Mal allgemein: vom ersten Eindruck ist wxWidget doch erstklassig designed worden. Schlüssige Klassen- und Membernamen. Da kommt man ohne viel lesen auch ganz intuitiv damit zu recht. Wie es mit dem Eventsystem aussieht, kann ich noch nicht sagen. Anscheinend gibt es dafür Makros in C++ und Brucey hat das über Funktionen gelöst. Bin jedenfalls gespannt, wie schwer es zu bedienen ist und was es alles kann. mfg olli |
||
vertex.dreamfall.at | GitHub |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
http://wxformbuilder.org/
die frage ist inwiefern wxmax das laden kann, je nachdem müsstest du das selbst implementieren. ein weiteres problem ist das so ein oberflächen designer eigentlich wertlos ist wenn man die event callbacks / handler nicht auch direkt darin schreiben kann ... weil du dann doch wieder alles irgendwo rücknotieren musst welche events du wie wo handlen musst ... viel aufwand wenns mehr als ein fenster mit 10 buttons wird ... |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
klepto2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
mit dem von Dreamora geposteten Editor für wxWidgets wird es bald möglich sein auch Apps für BMax zu entwickeln. Soweit ich weiß arbeitet Brucey (einfach unglaublich der Kerl) an einem Code Converter der den Output des Editors in eine BMax wxWidget konvertiert.
http://www.blitzbasic.com/Comm...opic=74927 Einfach nach wxCodeGen suchen ![]() |
||
Matrix Screensaver
Console Modul für BlitzMax KLPacker Modul für BlitzMax HomePage : http://www.brsoftware.de.vu |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Examples laufen nun. Man darf halt nicht vergessen auch noch die .a Dateien aus MinGW/lib in den mod\wx.mod\lib\win32 Ordner zu kopieren(nicht alle, nur libodbc32.a, librpcrt4.a und libwinspool.a)
Danke für den Link zu wxFormBuilder! Nunja, ich will nur eine kleine Konfiguration für mein Programm damit machen(Video und Audioeinstellungen) da genügt es, den C++ Code händig zu übersetzen. Aber mal ehrlich, der wxFormBuilder ist nicht so das gelbe vom Ei?! Wenn ich an die Zeiten von VisualBasic zurück denke - das war noch ein Formeditor. Selbst bei Visual C# Express suche ich verzweifelt nach einem Raster für die Controls. Aber bei wxFormBuilder kann ich ja nicht mal die Controls größer oder kleiner ziehen, oder die Position ändern. Oder habe ich da was nicht verstanden? Mir kommt es so vor, dass das Layout gar über eine Art Tabellen(also das Verschachteln der SizeBoxes) abläuft. Ist dass denn ein Muss oder kann man die Positionen von Buttons etc. auch händig eingeben? mfg olli |
||
vertex.dreamfall.at | GitHub |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wx ist nicht Windows API via Visual Studio ... es läuft ein wenig anders ab um die konsistenz auf den 3 plattformen zu erreichen (speziell auf OSX wo das OS sonst alles so umsortiert wie es es gerne hätte scheiss egal was du gesetzt hast. speziell bei der grösse von elementen)
deswegen ist der editor da vermutlich relativ representativ wie das ganze in wx funktioniert ... ist der mit abstand beste frei erhältliche editor. die anderen kosten 100 USD aufwärts |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
OK, wenn man einmal das Verständnis für das Tabellenlayout hat, dann gehts recht fließend voran.
![]() Mich würde übrigens mal interessiere #Reaper, wie du die Maximizebox disabelst. mfg olli |
||
vertex.dreamfall.at | GitHub |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Brucey hat mich vorhin auch gerade auf wxFormBuilder aufmerksam gemacht. (hier vorletzter Post von ihm)
Wie ich nun aber mit den Sizern ein Button unten rechts hinbekomme, und, dass der Button auch von der passenden Farbe umgeben wird (Panels), habe ich noch nicht hinbekommen... Bei Vertex seinem ScreenShot sieht man auch gut, was ich meine (falls das nicht beabsichtig ist). @Vertex: Habe nach längerem suchen im Quellcode ein paar Konstanten entdeckt. Damit man nicht die Größe des Fensters ändern kann, habe ich folgende Kombination verwendet: Code: [AUSKLAPPEN] wxSYSTEM_MENU|wxMINIMIZE_BOX|wxCLOSE_BOX|wxCAPTION|wxCLIP_CHILDREN
Die Maximizebox ist dann auch automatisch disabled. Für was der letzte Flag gebraucht wird, verstehe ich noch nicht ganz, ist mir aber momentan eher nicht so wichtig. ![]() Die Flags habe ich in der toplevel.h im include-Ordner von wxMax gefunden: Code: [AUSKLAPPEN] // style common to both wxFrame and wxDialog
#define wxSTAY_ON_TOP 0x8000 #define wxICONIZE 0x4000 #define wxMINIMIZE wxICONIZE #define wxMAXIMIZE 0x2000 #define wxCLOSE_BOX 0x1000 #define wxSYSTEM_MENU 0x0800 #define wxMINIMIZE_BOX 0x0400 #define wxMAXIMIZE_BOX 0x0200 #define wxTINY_CAPTION_HORIZ 0x0100 #define wxTINY_CAPTION_VERT 0x0080 #define wxRESIZE_BORDER 0x0040 [...] #define wxDEFAULT_FRAME_STYLE \ (wxSYSTEM_MENU | \ wxRESIZE_BORDER | \ wxMINIMIZE_BOX | \ wxMAXIMIZE_BOX | \ wxCLOSE_BOX | \ wxCAPTION | \ wxCLIP_CHILDREN) PS: Irgendwie sollte ich mir angewöhnen, nicht immer so quer durcheinander zu schreiben ![]() ![]() |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke dir! Im FormBuilder muss man dazu unter style zuerst wxDEFAULT_FRAME_STYLE deaktivieren und dann halt wxCAPTION, wxCLOSE_BOX, wxMINIMIZE_BOX, wxSYSTEM_MENU aktivieren.
mfg olli |
||
vertex.dreamfall.at | GitHub |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das letzte Flag ist ein flag das sich auf child fenster auswirkt ... wenn ich mich net ganz irre das welches "MDI" like fenster erzeugt so das childfenster, die den bereich des hauptfensters verlassen "gecuttet" werden ...
aber net 100%ig sicher. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hmm.. kann es sein, dass ich hunderte von Panels in einem Sizer benutzten muss, nur damit ich ein Button habe, welches von der normalen Fensterfarbe umgeben ist, habe? :-/ | ||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nö *grinst* definitiv net | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe das Gefühl, hier will mir jemand was nicht verraten :O
*grübel* |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nö dafür müsste ich mehr mit wx gearbeitet haben. Aber da ich schon verschiedene wx apps genutzt hab und die noch liefen kanns net so sein weil die anzahl handles explodieren würde wenn du es so machen müsstest. also muss es eine sinnvollere möglichkeit geben. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ganze funktioniert so ähnlich wie beim Webdesign.
Man muss sich das so vorstellen, dass du mehrere Tabellen ineinander verschachtelst. Bei meinem Program bspw. oben habe ich ein Fenster erstellt, dann einen vertikalen BoxSizer. Alle Controls, die in diesem BoxSizer erstellt werden, werden vertikal untereinander angeordnet. Ich habe bspw. ein Label "Video settings", ein Panel, ein Label "Audio settings", ein Label "Recorder settings" und ein drittes Panel darin erstellt. In dem ersten Panel gibt es wieder einen vertikalen BoxSizer. Erstes Control ist ein Label "Renderer", zweites eine Combobox "OpenGL" und darunter gibt es wieder einen BoxSizer diesmal aber horizontal ausgerichtet. In dem befinden sich dann die Checkbox "Fullscreen", Label "Color depth", Combobox "32 Bit", Label "Screen frequency" und die Combobox "85 Hz" Du merkst also, man kann die BoxSizer ineinander verschachteln. Die Controls und BoxSizer können dann noch entsprechend ausgerichtet werden(linksbündig, zentriert, rechtsbündig, oben, mittig und unten). Code: [AUSKLAPPEN] Windows
+---------------------------------------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +---------------------------------------+ Windows +---------------------------------------+ |BoxSizer | |+-------------------------------------+| || || || || || || || || || || || || || || || || || || || || || || || || || || || || || || || || || || || || || || || || || || || || |+-------------------------------------+| +---------------------------------------+ Windows +---------------------------------------+ |BoxSizer | |+-------------------------------------+| ||Label || ||Panel || ||+-----------------------------------+|| |||BoxSizer ||| |||+---------------------------------+||| ||||Label |||| ||||ComboBox |||| ||||BoxSizer |||| ||||+-------------------------------+|||| |||||Chk Lbl Combo Lbl Combo ||||| ||||+-------------------------------+|||| ||+-----------------------------------+|| ||Label || ||Panel || ||+-----------------------------------+|| |||BoxSizer usw. ||| ||+-----------------------------------+|| ||Label || ||Panel || ||+-----------------------------------+|| |||BoxSizer usw. ||| ||+-----------------------------------+|| |+-------------------------------------+| +---------------------------------------+ So ungefähr habe ich das aufgebaut. mfg olli |
||
vertex.dreamfall.at | GitHub |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group