問題タブ [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 に答える
153 参照

python - 水平 BoxSizers の動的な数を作成する方法は?

画面に表示できる画像の数を計算する関数があります。画面に表示できる画像よりも多くの画像がある場合は、すべての画像が表示されるまで画像のサイズを変更します。

次に、1 つの垂直ボックスサイザーと複数の水平ボックスサイザーでそれらを表示したい!

ボックスサイザーの水平方向の数は動的で、画像の数に応じて 1 つまたは複数になります。

複数のボックスサイザーを定義して、それらを垂直ボックスサイザーに追加するにはどうすればよいですか?

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

wxpython - wx.GridSizer の個々のセルのサイズを取得するにはどうすればよいですか?

wx.GridSizerを呼び出した後の個々のセルのサイズを取得できるかどうか疑問に思っていFit()ます。もしそうなら、どうすればいいですか?

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

python - wxPython:「スーパー」wx.SpinCtrl、float値、サイザー内のレイアウト

wx.SpinCtrl浮動小数点ではなく、整数間での回転に制限されています。したがって、フロート間でスピンできるwx.TextCtrl+wx.SpinButtonコンボクラスを構築しています。コンボが通常とまったく同じに見えるように、プログラムで両方のサイズとレイアウトを設定できますwx.SpinCtrl

wx.TextCtrl親パネルにイベントをキャッチさせたいので、このコンボをからサブクラス化しwx.EVT_TEXTます。私のこの議論を改善していただければ幸いです。

からのイベントwx.EVT_SPIN_UPwx.EVT_SPIN_DOWNイベントwx.SpinButtonは両方とも内部実装であり、親フレームはこれらのイベントを考慮しません。

今、私はレンガの壁にぶつかった。私のコンボクラスはサイザーではうまく機能しません。.Add()コンボクラスをにした後wx.GridBagSizer、はだけが。wx.TextCtrl内に配置されますwx.GridBagSizer。はwx.SpinButtonそれ自体で残されます。ただし、wx.EVT_SPIN*バインディングは非常にうまく機能します。

私の問題はレイアウトです。wx.GridBagSizerクラスを1つのウィジェットとして扱いたい場合、どのようにクラスを作成すればよいですか?

これが私のコンボクラスコードです:

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

python - wxPython: wx.PyControl に wx.Sizer を含めることはできますか?

wx.PyControlを含むことができますwx.Sizerか?

私が最終的にここでやろうとしていること (フロート値を持つスピナー) は、別の質問で既に回答されていることに注意してください。wx.PyControl私は、独自のカスタム ウィジェットを作成する必要がある場合に役立つスキルである、内でのウィジェットのレイアウトに特に興味があります。私はすでに CreationCustomControls を読んでいますが、サブクラス内でサイザーを使用していませんでした。wx.PyControl

以下のコードを使用すると、CustomWidget正しく表示されません。ウィジェットの操作当てはまるDoGetBestSizeと思うので、まだやっていません。私は実際に のでそのことをやっています。wx.Sizerwx.SizerCustomWidget

これが私のコードです(サブウィジェット間のイベントバインディング
なし) :

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

python - wxPython: wx.Panel の子である場合の wx.PyControl レイアウトの問題

これは次の質問の続きです:
wxPython: wx.PyControl に wx.Sizer を含めることはできますか?

ここでの主なトピックは、 a のwx.Sizer中で aを使用することwx.PyControlです。子ウィジェットFit()の周りで問題が発生しました。CustomWidgetこの問題は、Layout()afterを呼び出すことで解決されましたFit()

ただし、私が経験した限り、ソリューションCustomWidgetは が の直接の子である場合にのみ機能しwx.Frameます。の子になると壊れるwx.Panel

編集:以下のコードを使用すると、CustomWidgetその子に合わせてサイズが正しく変更されません。CustomWidgetこれは、 (のサブクラスとして)が;wx.PyControlの子である場合にのみ発生することがわかりました。wx.Panelそれ以外の場合、それが a の直接の子である場合、それはwx.Frame完全Fit()です。

コードは次のとおりです。

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

wxpython - wxPython を使用して、格子状の長方形のコンテナまたはボックスを描画します

全体として、内部に 20 個のスロットがある長方形またはコンテナーを描画したいと考えています。CD コンテナまたはアーカイブのようなもので、CD または本を挿入するための空のスロットがあります。私は wxPython を選択します。この 20 個の水平方向の空のスロットには、レイアウトを作成するための wx.BoxSizer(wx.Horizo​​nal) またはその他のサイザーがあることがわかります。

私の質問は、wx.BoxSizer によって生成されたスペースに (空のスロットを表すために) 「目に見える境界線と灰色の背景」を持たせることは可能ですか? それは不可能だと私には思えます。サイザーは、表示されるサブウィンドウを生成する代わりに、レイアウトのみを行うようです。

それが不可能な場合は、この「ボーダーとカラフルな背景」機能用のスロット ウィンドウ クラスを作成し、20 個のスロット ウィンドウ オブジェクトを作成してサイザーに追加する必要があると思います。次に、本または CD を表す別のウィンドウ クラスを作成し、この CD ウィンドウをスロット ウィンドウに挿入する必要があります。

これは少し奇妙に聞こえます。スロット ウィンドウが必要かどうか、または wx.sizer (または他のサイザー) がスロット ウィンドウと同じ効果を達成できるかどうかはわかりません。

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

wxpython - wxPythonで手動でサイズを変更せずにwxFrameを更新するにはどうすればよいですか?

wxPythonスクリプトに単純なフレームがありますが、希望どおりに更新されません。

基本的に、フレームは空白で始まります。その後、ユーザーはさまざまなデータセットを選択してグリッド形式で表示できます。データセットが選択されると、スクリプトはグリッドを作成し、それをフレームのサイザーに配置します。問題は、フレームが非常に小さいサイズでグリッドを表示し、サイザーが本来のように(または少なくとも私が期待するように)拡張していないことです。さらに、フレームのサイズを手動で(つまりマウスを使用して)変更すると、サイザーが突然拡大し、フレーム全体がグリッドで埋められます。

フレームのサイズを手動で変更する場合だけでなく、サイザーでグリッドをすぐに拡張するにはどうすればよいですか?

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

python - wx.GridBagSizer内に要素(パネル)を配置する

グリッドバッグサイザーを使用して、フレーム内に2つのパネルを配置しています。

control_panelをmain_panelの上に配置します(上記のように)。しかし、これは私が得る出力です:

代替テキスト

反対を指定したのに、なぜトップパネルがボトムパネルよりもはるかに大きいのかわかりません。(2、5)は上部、(5、5)は下部です。また、サイズを小さくすると奇妙な動作をします。基本的には必要なものが得られます(下の画像を参照)が、再度大きくしたときに比率を維持する方法がわかりません。

代替テキスト

ただし、サイズを大きく(少しでも)開始すると、形状と比率が反対方向に劇的に変化することがわかります(下部がはるかに小さくなり、上部がはるかに大きくなります)。

代替テキスト

まだこのサイザーを学ぼうとしていて、私が見たどの例でもこの問題を実際に見つけることはできません。また、すべてのパラメーターを試し、いくつかのテストを実行しようとしましたが、ここで何が起こっているのか理解できません。どんな助けでも大歓迎です。

編集:下のコメントを支援するために下の画像を追加しました。 代替テキスト

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

wxpython - wxpython: ネストされたサイザー、および左上隅の小さな四角?

私は wxPython とサイザーを調べようとしており、次の例をまとめました。

これを実行すると、画像のようなウィンドウが表示されます。

wxPython ウィンドウ

誰かが説明できますか、なぜ左上隅に灰色の小さな四角が表示されるのですか?また、コードを実装する正しい方法は何ですか? (ボタンは意図的に色付けされているため、明らかです..)これがプラットフォーム固有の場合に備えて、Ubuntu Lucidを使用しています。

編集:その正方形は明らかにパネル自体ですが、意図したように、サイズが変更されてボタンの「親」にならない理由がわかりませんか?

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

c++ - ダイアログ(wxDialog)に大きなグリッド(wxGrid)を合わせる

これが私のレイアウトです:

  • グリッド(比率1)と[OK]/[キャンセル]ボタンバーを含むサイザーがあります

  • すべてはwxDialogにあります

ここにあります:

問題は、グリッドに含まれる行が多すぎて画面がオーバーフローするため、最終的にダイアログの上部が表示されないことです。ダイアログでFit()を呼び出すときに、その高さを制限する方法はありますか?

私はこのようなものを試しました:しかしSetSizeHints(-1,-1,-1,500);SetMaxSize(500,500)それはうまくいきませんでした。

また、私はそれを試みました:this->SetSize(this->GetSize().GetX(), 500);、しかし、垂直スクロールバーがグリッドに表示されるため、十分な幅がなく、水平スクロールバーが表示されます。

編集

コンストラクターで私はwxGrid(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize)