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

c++ - WxWidgets:サイザーと無駄なスペース

現在、私のプロジェクトでは、次のようにレイアウトされたパネルがあります。

  • wxBoxSizer(wxVertical)
    • wxSearchControl(wxExpand)
    • wxListControl (wxExpand)
    • wxBoxSizer(wxHorizo​​ntal, wxALIGN_CENTER)
      • wxButton (wxALL)
      • wxButton (wxALL)

問題は、パネルが展開されると、ボタンがある場所の下に無駄なスペースが作成され、パネルが縮小されると逆の問題が発生することです。つまり、望ましくない動作である wxListControl を縮小する前に、ボタンが完全に見えなくなることを意味します。望ましい動作は次のようなものです: 拡張するとき、すべてが「適切なサイズ」になるようにしたい場合、拡張し続けるのは wxListControl だけです。と検索制御を縮小する必要があります。次の図は、問題を強調する必要があります。

**

下部の無駄なスペース: http://i.stack.imgur.com/lsXOv.png

ボタンが壊れている: http://i.stack.imgur.com/U50In.png

だからここに私のコードがあります(小さな幅のために編集され、悪い名前が保持され、すべて):

私が試みた唯一のことは、wxFormBuilder でさまざまなフラグを使用してさまざまな構成でランダムなさまざまなサイザーを常に試して、それを機能させようとする無駄な試みですが、それは常に無駄に終わります。私はいくつかのサイザーのチュートリアルを見てきましたが、私が得た唯一の結論は、自分のサイザーを書く必要があるということです。

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

python - wxPython: 大量のウィジェットをグリッドに追加する速度を上げる方法

編集:アクションによって消費される時間のほとんどは、ウィジェットをサイザーに配置するのではなく、実際にはウィジェットの作成に費やされていることを理解するために、もう少しデバッグしました。問題は、それらをより速く作成する方法です。

約 300 個のチェックボックスを追加して、ダイアログの内容を動的に変更する必要があります。wx.GridSizer とそれらを追加するループを使用していますが、非常に遅いです。それをより速く行う方法はありますか?すべてのウィジェットが追加されるのを待ってから、Sizer の Add メソッドを呼び出すことでサイズがすぐに計算されると信じているため、位置とサイズを手動で計算するメソッドがあります。これは私がしていることのショートカットです:

約 300 の要素を追加するのに約 1 分かかります。たとえば、QIP や ICQ などのアプリは 1 秒で多くの連絡先を表示するので、もっと速い方法があるに違いないと思います :) 手がかりをありがとう!

さらに、私の英語を許してください。

レイ

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

python - wxpython でボタンの位置を取得する

wxpython で 2 つのボタンの位置を把握しようとしています。左に小さな垂直パネル、右に大きなパネルを持つGUIがあります。

右側のパネル (ノートブック) では、Vertical Sizer を使用して 3 つのパネルを積み重ねています。

私のペイン 3 には、グリッドサイザー (1 行、3 列) を使用して編成された 3 つのボタンが含まれています。それはすべて素晴らしく見えます。ここで、3 つのボタンの画面位置を取得できるようにしたいと考えています (画面の解像度、GUI のサイズを調整する人などに基づいて変更されます)。

私の画面サイズは (1920,1080) で、これは から派生したものwx.GetDisplaySize()です。self.button1.GetScreenPosition() と self.pane3.GetScreenPosition と self.button1.GetPosition() を試しました。最初は位置 (77,93) を返し、2 番目は (61,95) を返し、最後のものは (0,0) を返します。でテストした後testtext = wx.StaticText(self.Notebook3, -1, 'X marks spot',pos=(240,820))、返されるボタンの位置が (240,820) であることがわかりました。これは私が返したい番号です。

私が間違っていることを誰かが知っていますか?ありがとう!

*編集*

私の完全なコード - 実行可能である必要があります - これを 1920x1080 で実行しています (テキスト「x はスポットをマークします」)。

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

python - wxPython 整列ウィジェットとフィッティング

実際、私は2つの質問があります:

  1. self.Fit() がウィジェットのサイズを変更しないようにするにはどうすればよいですか?

これが .Fit() のないウィンドウです。TextCtrl の幅には満足していますが、ウィンドウの高さをウィジェットに合わせて調整したいと考えています。

イムグル

.Fit() を追加すると、TextCtrl の幅が変わります。

フィット感あり フィット感あり

  1. wx.FlexGridSizer を使用しようとしましたが、StaticText と TextCtrl の間の間隔を調整するのに問題がありました。

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

0 投票する
0 に答える
572 参照

grid - wxPython グリッドのサイズ変更

wx.grid.Grid を使用してデータベースを表示しようとしており、GridBagSizer を使用してレイアウトを構成しています。

問題は次のとおりです。 ウィンドウのサイズを変更すると、wx.Grid が可能な限り伸びて、垂直方向のスペースをすべて埋めてしまいます。

グリッドのコードは実際には wxPython デモと同じで、データが変更されているだけです。

レイアウト部分:

私はいくつかのスクリーンショットを投稿しました:

http://i.stack.imgur.com/v2hRz.jpg http://i.stack.imgur.com/Sfu6d.jpg