2009-05-19 41 views
1

Linux上でwxDialogオブジェクトを使用して問題に遭遇しましたオブジェクトのconstrutorで、関連するスタイルフラグ(wxCAPTION|wxMINIMIZE_BOX|wxMAXIMIZE_BOX|wxCLOSE_BOX|wx_RESIZE_BORDER)を渡しますが、ボタンは表示されませんアップ。 wxformbuilderでクラスを設計していたとき、表示されたデザインに表示されますが、実行中のアプリケーションには表示されません。最小化と最大化ボタンをwxDialogオブジェクトに表示する方法

現時点ではScientific Linux 5(RHEL 5)上でwxWidgets 2.8.7を使用しています。これを回避する方法に関する提案やアイデアはありますか?

EDIT:ところで、これはthis question

+0

MakeModal(true)を呼び出します。他のすべてのウィンドウを無効にし、実際にボタンが必要な場合はフレームを使用してください。それ以外の場合は動作しません(また、wxMiniFrameを考慮してください)。 –

答えて

1

あなたが建設

gtk_window_set_type_hint(GTK_WINDOW(m_widget), GDK_WINDOW_TYPE_HINT_DIALOG); 

中に、その後wxGTKにダイアログを作成する場合は、このウィンドウのために示されているものの装飾ウィンドウマネージャにそれを残している、と呼ばれています。だからあなたがそれにスタイルを与えても、ボタンは表示されないなら、何もできません。いずれにしても、私はwxFrameを表示していると思いますが、親フレームが無効になっているだけでうまくいくはずです。

+0

私はこれをコンパイルすることさえできませんでした。この関数の使い方を参照するリンクがありますか?それはwxWidgetsの一部ですか? – dagorym

+0

私が書いたとおり:これはwxWidgetsソースの一部であり、ダイアログ構築中に呼び出されます。これが示すのは、wxWidgetsが責任を負いませんが、ウィンドウマネージャがダイアログの装飾方法を決定するため、何もできないということです。 wxMINIMIZE_BOXとwxMAXIMIZE_BOXは単に無視されます。あなたの現在のLinuxデスクトップ上のそれらのボタンを持つダイアログを持つことはできません。 – mghie

+0

あなたのコメントが間違っています。ありがとう。 – dagorym

1

に関連しては、あなたの代わりにwxDialogのwxWindowを使用することはできますか?おそらく、ダイアログを最小限に抑えるのは意味がありませんが、これはアプリケーションウィンドウの通常の操作です。

+0

実際にコードがどのように記述されていますか? (私の編集のリンクを参照)。 – dagorym

関連する問題