der_Kay
Aktives Mitglied
Thread Starter
- Dabei seit
- 02.09.2004
- Beiträge
- 1.765
- Reaktionspunkte
- 25
Hallo zusammen,
Ich habe ein ärgerliches Problem mit wxMac 2.6.2 (aus Darwin Ports): Wenn ich ein wxGrid in einen wxStaticBoxSizer einbette, hört das Grid auf, mit der Maus zu interagieren. Die Scrollbars scrollen nicht mehr und man kann keine Tabellenzellen mehr anklicken. Keyboard-Navigation/-Interaktion ist noch möglich.
Innerhalb "normaler" BoxSizer funktioniert alles wie gewohnt. Würde mich sehr freuen, wenn jemand versuchen könnte, das nachzuvollziehen und rückmeldet, ob das vielleicht mit anderen builds von wxWidgets auch passiert. Und vielleicht weiss auch jemand, ob und was ich verkehrt mache...
Unten ist etwas Copy&Paste-fähiger Code, der den Fehler bei mir auslöst.
viele Grüße und Dank im voraus,
Kay
Ich habe ein ärgerliches Problem mit wxMac 2.6.2 (aus Darwin Ports): Wenn ich ein wxGrid in einen wxStaticBoxSizer einbette, hört das Grid auf, mit der Maus zu interagieren. Die Scrollbars scrollen nicht mehr und man kann keine Tabellenzellen mehr anklicken. Keyboard-Navigation/-Interaktion ist noch möglich.
Innerhalb "normaler" BoxSizer funktioniert alles wie gewohnt. Würde mich sehr freuen, wenn jemand versuchen könnte, das nachzuvollziehen und rückmeldet, ob das vielleicht mit anderen builds von wxWidgets auch passiert. Und vielleicht weiss auch jemand, ob und was ich verkehrt mache...
Unten ist etwas Copy&Paste-fähiger Code, der den Fehler bei mir auslöst.
viele Grüße und Dank im voraus,
Kay
Code:
//
// file: strange.cpp
//
#include "wx/wx.h"
#include <wx/grid.h>
#define GRID_WINDOW_ID 200
//
// #define 1 for using wxStaticBoxSizer, 0 for using BoxSizer
//
#define USE_STATIC_BOX_SIZER_AND_GRID_IS_DEAD 1
class StrangeFrame : public wxFrame
{
public:
StrangeFrame( )
: wxFrame ( (wxWindow*)NULL, wxID_ANY, wxT("strange..."))
{
wxGrid* grid = new wxGrid(this, GRID_WINDOW_ID);
grid->CreateGrid( 5, 5);
wxBoxSizer* mainsizer = new wxBoxSizer(wxVERTICAL);
#if USE_STATIC_BOX_SIZER_AND_GRID_IS_DEAD
wxStaticBoxSizer* stboxsizer
= new wxStaticBoxSizer ( wxVERTICAL, this,
wxT("this frame kills the grid"));
stboxsizer->Add ( grid, wxSizerFlags(1).Expand());
mainsizer->Add ( stboxsizer,
wxSizerFlags( 1 ).Expand().Border(wxALL, 3));
#else
mainsizer->Add ( grid, wxSizerFlags(1).Expand() );
#endif
SetSizer( mainsizer );
SetAutoLayout( true );
}
};
class MyApp: public wxApp
{
bool OnInit()
{
StrangeFrame* frame = new StrangeFrame();
frame->Show( );
SetTopWindow( frame );
return true;
}
};
IMPLEMENT_APP(MyApp)