問題タブ [sizer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
420 参照

c++ - サイザーはフォームを扱う良い方法ですか?

私のアプリケーションを古い GUI (固定サイズを使用していた場所) から wxWidgets (サイザーの基礎を学ぼうとしている場所) に移動しています。

アプリケーション内には、非常に複雑な構造を持つフォームがいくつかあります。データとワークフローの性質から、これらすべてのデータを 1 つの画面にまとめることが推奨されます。しかし、この画面は使いやすいように適切に設計する必要があります。

これが旧バージョンのフォームです...

固定レイアウトのフォーム

...そして、これが多かれ少なかれ、サイザーを使用して思いつくことができるものです...

wxSizers を使用したフォーム

wxGridSizer を単純に使用することはできないことに注意してください。一部のウィジェットは行全体にまたがり、他のウィジェットは固定グリッドの外に出てしまうなどです。

明らかに、見苦しさを軽減するために作業を続けることができましたが、サイザーはそれを行うための正しいツールではないのではないかと考えていました. 私が望むものを達成するには、ある種の colspan/rowspan メカニズムを備えた wxGridSizer に似たものが必要ですが、それでは十分ではないかもしれません。

そこで、次のような「フォームサイザー」を自分で作ろうと考え始めました。

ユーザーは、フォームのジオメトリを完全にブロックするために、すべてのウィジェットの相対的なサイズを設定します。サイズ変更時にこのジオメトリを wxPanel に合わせるにはLayout()、適切なスケーリング係数fを計算し、次のようにしてすべてのサイズと位置を設定します。

など(これは単なるスクラッチです。大まかなアイデアとして考えてください。すべてを小さすぎてウィジェットのテキストに収まらないようにしたり、それに応じてフォントサイズを拡大縮小したりすることを避けるためのメカニズムが必要です)。

それは合理的に思えますか?あなたはその話題にどのように向き合いますか?この選択は、私の将来の開発にかなり影響するので、どんな回答、批判、コメントも大歓迎です。

0 投票する
1 に答える
362 参照

python - Wxpython - 静的ポジショニングをサイザーに変換

私はしばらく wxpython で静的ポジショニングを使用してきましたが、サイザーの使用に切り替える必要がありますが、コツがつかめません。以下は、静的ポジショニングを使用した私のアプリケーションの縮小版です。このレイアウトをサイザーを使用するように変換する方法について、誰かが私にいくつかの指針を教えてください。画面グラブも添付します:

スクリーングラブ

0 投票する
1 に答える
163 参照

c++ - ノートブックの横にあるサイザーとコントロール

ノートブックの横にコントロールを実装するレイアウトの問題に直面しています。

問題は、ノートブックとその横のコントロールが意図したとおりに適切に配置されていることですが、ノートブックのウィンドウにあるコントロールは、サイザーが使用されていないかのように互いの上に配置されます。

これを修正する方法について、あらゆる種類の入力に感謝します。

編集:問題を実証するためのサンプルコードを提供

ヘッダ test.h:

test.cpp

そしてメイクファイル

0 投票する
1 に答える
231 参照

python - wxPython -- statictext を追加するとパネルのサイズが変更されます

3 x 3 グリッドを作成する flexgridsizer のこのかなり単純なセットアップがあります:

パネルのサイズを明示的に設定しません。それらは、成長可能な行と列の比率によってサイズ設定されます。

後で、上部中央のパネルに 2 つの静的テキストを追加します。

最後に、これらの静的テキストを追加すると、上部中央パネルのサイズが変更され、幅と高さが大幅に大きくなります。フレックスグリッドサイザーのプロポーションをロックする方法はありますか? それとも、この動作を回避するために変更できる何か間違ったことをしていますか?

トラブルシューティングを行ったところ、フォント サイズが大きい場合でも、元のパネル サイズにテキストが収まる十分なスペースがあることがわかりました。フォント サイズを 5 に下げると、非常に小さくなりますが、それでもパネルのサイズが少し大きくなります。パネルの中に収まるのではなく、パネルの中に押し込んでいるように見えます。

0 投票する
1 に答える
743 参照

wxpython - wx.SplitterWindow のサイザーが機能しない wxPython

そのため、サイズ変更などの際に正常に動作するように、サイザーを使用しようとしている 3 つの分割ウィンドウがあります。ここに私が今持っているコードがあります。機能していません。

これに適切なサイザーを適用する方法を教えてもらえますか? 私はサイザーがまったく得意ではないので、ここで見つけた上記のものを使用しました [ wxPython Splitter windows and Panels .

0 投票する
2 に答える
3570 参照

button - wxPython - エキスパンド サイジングでボタンを整列

wx.MessageDialog に似たダイアログを作成しようとしています。下部に異なる色のセクションがありますが、私のコードではボタンが連携しません。

ボタンは右に配置し、下のセクションを拡大して灰色にします。おそらく簡単な解決策があります。誰でも私のエラーを見ることができますか?

これは、サイザーが expand に設定されている場合です。

ここに画像の説明を入力

これは展開しないように設定されたサイザーです:

ここに画像の説明を入力

これは、問題を示すコードの単純化されたバージョンです。厄介なコードは「===」で囲まれた一番下にあります。

0 投票する
1 に答える
207 参照

python - wxPython で画像を表示する際の垂直オフセット

wxPython フレームに画像を表示する方法は次のとおりです。

ここに画像の説明を入力

テスト画像のサイズが大きい場合、たとえば 912 x 3616 (ここでは私が使用した0.pngです)、垂直方向のオフセットを設定したいと思います。つまり、フレームの上隅が画像の (0,0) であってはなりません。しかし (0,500)つまり 500px の垂直オフセットです。

wxPythonで画像に垂直オフセットを設定するには?

0 投票する
1 に答える
282 参照

user-interface - wxpython アプリが低解像度で画面から消える

こんばんは/おはようございます

私は 1920x1080 のモニターでかなり詳細なプログラムに取り組んでいます。最大化したときにモニターに収まるようにすべてを設定しました。サイザーの設定方法に関連すると思われる問題がいくつかあります。

まず、画面の実際のサイズを縮小すると、ウィンドウの内容は縮小されず、右側から切り取られます。したがって、画面が小さいということは、コンテンツ サイズの半分ではなく、コンテンツの半分を意味します。

この問題は、解像度を調整するときにも引き継がれます。解像度が低いと、画面に実際に収まるコンテンツの約半分しか取得できません。この問題を解決するためにサイザーをどのようにセットアップすればよいかわかりません。そのため、現在サイザーを使用している方法を簡単に説明します。

私は読んでいて、gridbagsizer をパネルに配置することについてどこかで読んだので、それはうまくいくはずなので、変更したヘッダーとクローザーは次のとおりです。

これも何も変わりませんでした。SetSizeHints を特定の解像度に設定しようとしましたが、それもうまくいきませんでした。

では、この問題の原因は何ですか? すべてのコンテンツに 1 つのサイザーを使用していることに何か関係があるような気がします。この場合、新しいサイザーを完全に再構築してコンテンツを分割することなく、これを修正する最も簡単な方法は何ですか?

0 投票する
1 に答える
517 参照

python - wxpython sizers - WX.EXPAND はスペーサーに違いをもたらしますか?

ゼロからの BoxSizerチュートリアルの適切なアドバイスに従って、コードをリファクタリングして、wx.LEFT/RIGHT/TOP/BOTTOM フラグを「スペーサー」に分解しています。

になります:

上記の場合、それらは完全に同等であると確信しています。ただし、wx.EXPANDゼロ以外の比率が次のように指定されている場合:

これは以下ですか:

上記と完全に同等ですか?視覚的には同じように見えますが、欠けているものはありますか? 言い換えればwx.EXPAND、国境に影響を与えますか? はいの場合、どのように?

もちろん、上記の例は些細なことですが、複雑なサイザー レイアウトでは、上記の変換 (チュートリアルで提案されているように) により、コードが大幅に簡素化され、一般的な UI パターンが際立ちます。これは、OR されたフラグと数字の混乱では単純に判読できませんでした。

編集:スペーサーを追加する正しい方法に関するフィードバックをいただければ幸いです。たとえば、私はここで見ました:

または私が維持しているコードでは、人々は次のことを行っています。

現在、Pythonには1つ、できれば1つだけの明白な方法があるはずです-ここでは少なくとも4つがあります-専門家のフィードバックを歓迎します.