記事"GUIのレイアウトとコンテナの使用: CBoxクラス"についてのディスカッション

 

新しい記事 GUIのレイアウトとコンテナの使用: CBoxクラス はパブリッシュされました:

この記事は、CBoxクラスによるレイアウトマネージャーを使って、レイアウトとコンテナに基づくGUIの生成の代替手法について取り扱います。CBoxクラスは、GUIパネルの必要不可欠なコンテナとして機能する補助コントロールです。グラフィカルパネルのデザインを容易にし、ときとして、コーディングの時間を割きます。

ダイアログウィンドウの絶対的な位置決めは、GUIアプリケーションを作る上での直接的な方法です。しかし、ときとして、graphical user interface (GUI)へのアプローチは不便・実用的でないこともあります。この記事は、CBoxクラスによるレイアウトマネージャーを使って、レイアウトとコンテナに基づくGUIの生成の代替手法について取り扱います。

この記事でのレイアウトマネージャーのクラスは、BoxLayout (Java) や Pack geometry manager (Python/Tkinter)のようなメインストリームプログラム言語では、概ね有効です。

3.1. レイアウトスタイル

CBoxには、2種類のレイアウトがあります。: 鉛直スタイルと水平スタイル

水平スタイルは下記の方なベーシックなレイアウトです。:

CBoxの水平スタイル

図2. 水平スタイル(中央)

鉛直スタイルは下記のレイアウトです。:

CBoxの鉛直スタイル

図3. 鉛直スタイル (中央)

CBoxは、デフォルトでは水平スタイルになっています。

2つのスタイルの組み合わせを使うことで、さまざまなGUIパネルの設計をすることができます。さらに、コンテナの中に制御パネルを設置するデザイ ンも可能です。つまり、これにより、他のコンテナの影響を受けずに、特定のコンテナ内の制御パネルのサイズや配置をカスタマイズすることができます。

作者: Enrico Lambino

 

Enricoさん、記事、CBox、サンプルをどうもありがとうございました!とても役に立ちました。

少し関係ない質問ですが、ダイアログの境界線をドラッグしてダイアログのサイズを変更できるようにしたい場合、何を追加すればよいでしょうか?

ありがとうございました!

 
Amir Yacoby:

少し関係ない質問ですが、ダイアログの境界線をドラッグしてダイアログのサイズを変更できるようにしたい場合、何を追加すべきでしょうか?

あまり自信がないのですが、私の知る限り、その機能はまだサポートされていません。しかし、それが可能であれば、個々のコントロールや コンテナは、それ以上位置を変更することなく、レイアウトに従ったままになるので良いでしょう(例えば、レイアウトが中央に配置されている場合、スペースは最大化されるので、コントロールは中央に配置されたままになります)。この場合、クラスの OnResize() メソッドをオーバーライドして、メインの CBox コンテナの Pack() メソッドを再度呼び出す必要があります。
 
Enrico Lambino:
これについてはあまり自信がありませんが、私の知る限り、その機能はまだサポートされていません。しかし、それが可能であれば、個々のコントロールやコンテナは、それ以上位置を変更することなく、レイアウトに従ったままになるので、良いことだと思います(例えば、レイアウトが中央に配置されている場合、スペースは最大化されるので、コントロールは中央に配置されたままになります)。この場合、クラスのOnResize()メソッドをオーバーライドして、メインのCBoxコンテナのPack()メソッドを再度呼び出す必要があります。
はい、MTターミナルはサポートしていないようです。ありがとうございました!
 

このようなクラスは、開発者が標準に入れるべきだ!

スーパー!

 
WeChatの無料体験は、QQグループの千ポイント以上の別の利益を叫ぶ:375124107、プラスグループは "77 "に注意してください、ご協力ありがとうございました!
 

LayoutsBox.mqh "はどこにありますか?

Layouts "ディレクトリ全体が見つかりませんでした。ありがとう。

 
Paul Xiang:

LayoutsBox.mqh "はどこにありますか?

Layouts "ディレクトリ全体が見つかりませんでした。ありがとうございます。

その記事の一番下(ここで、記事の最後までスクロールしてください :https://www.mql5.com/ja/articles/1867)にあります。
Using Layouts and Containers for GUI Controls: The CBox Class
Using Layouts and Containers for GUI Controls: The CBox Class
  • 2015.07.09
  • Enrico Lambino
  • www.mql5.com
This article presents an alternative method of GUI creation based on layouts and containers, using one layout manager — the CBox class. The CBox class is an auxiliary control that acts as a container for essential controls in a GUI panel. It can make designing graphical panels easier, and in some cases, reduce coding time.
 
とても興味深い......しかし、私のような初心者にとって、これらのファイルはどこに置くべきか?
 
こんにちは。とてもいいクラスですが、radiogroupやcheckgeoupを ボックスの中に入れると表示されません。
どうにか動作させる方法はないでしょうか?
同じコードをメインウィンドウ/ダイアログに追加すると、ラジオグループが表示されます。

ありがとうございました。
 
LucTelmosse:
こんにちは。とてもいいクラスですが、radiogroupやcheckgeoupをボックスの中に入れると表示されません。
どうにか動作させる方法はないでしょうか?
同じコードをメインウィンドウ/ダイアログに追加すると、ラジオグループが表示されます。

ありがとうございます。

こんにちは、

ラジオグループやチェックグループを表示することは可能です。私はこのようなGUIを持っています。おそらく、CBOxコンテナに追加されないとか、コンテナが小さすぎるとか、他の問題があるのでしょう。開発中、私は背景(メインとコンテナ)を何色かに設定して、境界がどこにあるかを見やすくしています。少なくともメインダイアログのCreate()関数の コードを見せていただければ、さらにお役に立てると思います。