Mac Os 10.8.3 で wxMac-2.8.12 を使用して、wxWidgets でアプリケーションを開発しています。ラジオ ボタンを含むツールバーを追加する必要があり、各ボタンにはアイコンがあります。関数 CreateToolBar を使用してツールバーを作成すると、すべて正常に動作しますが、使用している 2 つ目のツールバーには、垂直と水平の 2 つの異なるツールバーを追加する必要があるため、次のようにします。
tools_bar = new wxToolBar(this, ID_TOOLBAR2, wxDefaultPosition,
wxDefaultSize, wxTB_NODIVIDER | wxTB_FLAT | wxTB_VERTICAL);
次に、さまざまなボタンを作成し、ツールバーをサイザーに追加します。
wxBitmap* toolsBitmaps[9];
toolsBitmaps[0] = new wxBitmap(icona1_xpm);
toolsBitmaps[1] = new wxBitmap(icona2_xpm);
toolsBitmaps[2] = new wxBitmap(icona3_xpm);
toolsBitmaps[3] = new wxBitmap(icona4_xpm);
toolsBitmaps[4] = new wxBitmap(icona5_xpm);
toolsBitmaps[5] = new wxBitmap(icona6_xpm);
toolsBitmaps[6] = new wxBitmap(icona7_xpm);
toolsBitmaps[7] = new wxBitmap(icona8_xpm);
toolsBitmaps[8] = new wxBitmap(freccia_xpm);
tools_bar->SetToolBitmapSize(wxSize(32, 32));
tools_bar->AddTool(ID_SELEZIONE, _T(""), *toolsBitmaps[8], wxNullBitmap,
wxITEM_RADIO, _T("Selezione"), wxEmptyString);
tools_bar->AddTool(ID_FONDAZIONE_SUPERFICIALE, _T(""), *toolsBitmaps[0],
wxNullBitmap, wxITEM_RADIO, _T("Disegna fondazione superficiale"),
wxEmptyString);
tools_bar->AddTool(ID_MAGLIA_FONDAZIONI, _T(""), *toolsBitmaps[1],
wxNullBitmap, wxITEM_RADIO,
_T("Inserisce maglia di fondazioni superficiali"),
wxEmptyString);
tools_bar->AddTool(ID_LIMITE_STRATIGRAFIA, _T(""), *toolsBitmaps[2],
wxNullBitmap, wxITEM_RADIO, _T("Disegna limite stratigrafia"),
wxEmptyString);
tools_bar->AddTool(ID_PUNTO_CALCOLO, _T(""), *toolsBitmaps[3],
wxNullBitmap, wxITEM_RADIO, _T("Inserisce un punto di calcolo"),
wxEmptyString);
tools_bar->AddTool(ID_GRIGLIA_PUNTI, _T(""), *toolsBitmaps[4],
wxNullBitmap, wxITEM_RADIO,
_T("Inserisce una griglia di punti di calcolo"), wxEmptyString);
tools_bar->AddTool(ID_LINEA_CEDIMENTI, _T(""), *toolsBitmaps[5],
wxNullBitmap, wxITEM_RADIO,
_T("Inserisce una linea per i cedienti differenziali"),
wxEmptyString);
tools_bar->AddTool(ID_GRUPPO_PALI, _T(""), *toolsBitmaps[6], wxNullBitmap,
wxITEM_RADIO, _T("Inserisce un gruppo di pali"), wxEmptyString);
tools_bar->AddTool(ID_PALO, _T(""), *toolsBitmaps[7], wxNullBitmap,
wxITEM_RADIO, _T("Inserisce un palo"), wxEmptyString);
tools_bar->ToggleTool(ID_SELEZIONE, true);
tools_bar->EnableTool(ID_LIMITE_STRATIGRAFIA, false);
tools_bar->EnableTool(ID_LINEA_CEDIMENTI, false);
tools_bar->SetMargins(0, 0);
tools_bar->Realize();
wxBoxSizer* itemBoxSizer10 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer10->Add(tools_bar, 0, wxEXPAND, 0);
結果は問題ありませんが、ボタンを押すとビットマップのサイズが変化し、見えなくなるほど小さくなります。
同じコードは、Windows でも Mac OS 10.4 でも正常に動作します。
それはバグですか、それとも何か間違ったことをしましたか? 1 つのウィンドウに 2 つの個別のツールバーを作成する別の方法はありますか?
ありがとうイブ