問題タブ [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.
python - wxPython:グリッドサイザーの一部のサイズを修正する方法
私がやりたいのは、ウィンドウが拡大するにつれて拡大する3つの列を作成することです。ただし、さまざまな列がさまざまな最大量に拡張されるように、制限を設けたいと思います。
ここで行ったことは、wxGladeを使用して、1行3列のグリッドサイザーを備えたフレームを作成することです。Part1の幅を「A」に固定し、Part2の幅を「B」に固定し、Part3を通常どおりに拡張できるようにします。
それ、どうやったら出来るの?
wxpython - wxPython:GridBagSizersをネストしていませんか?
既存のGridBagSizer(sizer)内にGridBagSizer(folderBagSizer)を追加しました...ネストされたサイザー(folderBagSizer)にいくつかのラベルを入力しようとしています。彼らはサイザーの下に現れています...?
前もって感謝します。:)
text - サイザーを使用しているときに静的ボックス内にアイテムを追加するにはどうすればよいですか?
私はwx.Pythonを使用しており、次のような静的ボックス内に「ラップ」したいオブジェクトのグループがあります。
ただし、そのチュートリアルでは位置サイズを使用しており、代わりにサイザーを使用しています。アイテムを中に入れるのに苦労しています:
むしろそれらは静的ボックスの下にあります。位置ではなくサイザーを使用して静的ボックス内にオブジェクトを含めるにはどうすればよいですか?
これが私のコードです:
wxwidgets - wxWidgetsの子サイザーが展開されない
非常に苛立たしいサイザーの問題があります。
私は次のようwxFlexGridSizer
に、垂直の中に2つのs(および他のいくつかのもの)を持っていwxBoxSizer
ます:
それぞれwxFlexGridSizer
が同じコードを使用して入力されます。
しかし、私が意図しているように、 wxFlexGridSizer
sはExpand
同じ幅に編集されていません。sが小さい下の方label
は、常に上の方よりも狭く、data
フィールド間の位置がずれたままになります。どちらも旗が付いているのでExpand()
、幅の狭い方は幅の広い方と同じ幅に拡大するはずですよね?
Right()
(フラグを下のフラグに追加するときにも、フラグを追加しようとしましたwxBoxSizer
が、何も実行されなかったため、非常に混乱しました。)
誰かが私が間違っているところを指摘することによって私の正気を救うことができますか?
編集:私が知る限り、これはwxWidgetsのバグです。フラグは、垂直サイザー内のExpand
アイテムに最大幅まで拡張するように指示する必要があります。私が間違っている場合は、誰かが私を訂正してください。
python - wxPython: あるパネルを別のパネルの上に重ねる方法
これはwxPythonについてです。
2 つのパネルを重ねて
PanelBG
配置したいと思います。subPanels、StaticTexts などを備えた独自の GridBagSizer を使用して、ある種の「背景」にする必要があります。
PanelFG
いくつかの StaticTexts、Buttons を備えた独自の GridBagSizer を備えた「フォアグラウンド」パネルにする必要があります...ただし、ウィジェットを配置しないPanelBG
場所に見えるように、透明な背景を使用します。PanelFG
ウィンドウのサイズを変更する場合でも、両方のパネルをフレームのすべての側面に伸ばす必要がありますが、相互の比率を変更することはありません。そのため、絶対配置を使用する方法があるかどうかわかりません。
ご参考までに、単一の Panel を使用したくない理由は、2 つの GridBoxSizers をマージすると、サイザーにさらに多くのセルを配置する必要があるためです。一致している場合、それらを多数のセルに分割し、グリッドの次元が数百**2 まで大きくなる必要があります。
前景に配置したいコンテンツは頻繁に更新および更新する必要があるため、毎回すべてのセルを再描画する必要があり、操作を完了するのに 10 ~ 20 秒かかります (テスト済み)。代わりに、前景のみを更新すると、数百分の 1 秒しかかかりません。
ありがとうございました!
python - wxPython: 1 つのサブウィンドウの SplitterWindow と SetMaxSize
私は wxPython の初心者なので、見落としている基本的なことが何もないことを願っています。SplitterWindow を使用して、フレームのコンテンツを 2 つのサイズ変更可能なサブウィンドウ (A と B) に分割したいのですが、ウィンドウの 1 つ (B) が必要です。 MaxSize を設定します。
残念ながら、これには問題があります。
フレーム全体のサイズを変更 (拡大) すると (ここでは wxPython の用語に合わせようとしています。通常は、ウィンドウのサイズを変更します)、ウィンドウ B の maxSize に達したら、ウィンドウ Aフレームのコンテンツ全体を埋めるために自動的に拡大されます。悲しいことに、そうではありません。
サッシを左に移動できない (ウィンドウ B のサイズを小さくする) ことを確認するにはどうすればよいですか? 現在の状況では、ウィンドウ B は左に移動するだけで (幅は変更されません)、WindowSplitter の青色の背景が表示されます。
これが私のコードです:
百聞は一見に如かず:
青色の領域はスプリッターの一部ですが、ウィンドウ A によって埋められていません。
正しい方向へのヘルプ/ヒントをいただければ幸いです。
ありがとう、ダニエル
python - wxpython:サイザー内のパネル内のテキストの中央揃え
次のコードは、ウィンドウの中央にテキストを表示する必要があるように思われます。つまり、内側のパネルの中央にあります。しかし、そうではありません。なぜだろうと思います。コードを実行すると、フレームの中央に150pxx150pxの白いパネルが表示されます。この領域のサイズをまったく変更したくないのですが、テキストを追加する(txt
スニペットの中央にある変数のコメントを解除する)と、パネルは常にテキストに合わせて縮小されます。パネルに一致するようにのサイズを指定してもStaticText
、テキストが中央揃えにならないため、解決策にはなりません。
python - wx サイザーを使用して表示した直後に Python フレーム要素が正しく表示されない
Mac OS X 10.6.8、wxPython 2.9.3.1、および 64 ビット Python v2.7.2 を使用しています。
私の問題は、いくつかのキーワードで説明するのはそれほど簡単ではありません。それが、おそらく解決策をまだ見つけていない理由です。
いくつかのオブジェクトを含む非常に単純な wx.frame を作成し、それらをサイザーで配置するだけです。フレームを表示すると、すべての要素が 1 秒間重なり合って表示されます。その後、すべてが所定の位置にジャンプし、正しく表示されます。
Refresh、wx.Yield、Update などのフレームを表示する前に、あらゆる種類の関数を呼び出そうとしましたが、何も役に立ちませんでした。
フレームが正しく描画される前に表示されないようにする機能、または描画してもまだ表示されないようにする機能はありますか?
ありがとうございました!
matplotlib - パネルの代わりにwx.boxsizerのMatplotlib
私はここを読みました: http : //wiki.wxpython.org/Getting%20Started#Windows_or_Frames.3Fパネルの代わりにサイザーを使用してフレーム内にコンテンツを配置することには利点があること。サイザーはより柔軟です。ただし、wxpythonを使用したmatplotlibの例の多くは、とにかくパネルを使用しています。通常、それらはプロットのパネルを定義します。私はサイザーを使用してGUIを設計しましたが、パネルの明らかな制限なしに、matplotlibキャンバスをサイザーの1つに配置したいと考えています。誰かがこれがどのように行われるか、または私が非常に簡単な例を見つけることができる場所を知っていますか?アンドリュー、どうもありがとう。
wxpython - wxPython:wx.StaticTextからサイザーを取得するには?
ウィジェットは、私が作成する多くのサイザーの 1 つですが、これらのウィジェットのいずれかのサイザーを取得する方法は、たとえばwx.StaticText
. まず、 wx.StaticText はGetSizer()
から派生しているのでメソッドがあるのですがwx.Window
、常に を返すNone
のですが、方法はありますか?
下手な言葉でごめんなさい。
編集 (2012 年 8 月 23 日)マイク Driscoll からのソリューション:
を使用していくつかのサイザーself.sizer.GetChildren()
から取得し、次に使用してリストから実際のウィジェットを取得しますSizerItemList
GetWindow()