問題タブ [wxgrid]

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 投票する
1 に答える
1771 参照

python - wxPython の wx.grid.Grid で GridCellAttr の使用を高速化できますか?

wx.grid.Grid非常に大きな Microsoft Excel ドキュメントを処理する Windows アプリケーションを作成しています。現在、17 列と 12,000 行以上のファイルをすばやく開き、スムーズにスクロールできます。(これは、カスタム テーブル クラスのデータを操作する仮想テーブルです。)

とにかく、カスタム グリッド セル属性オブジェクトを使用すると問題が発生します。

行内のすべてのセルにカスタム グリッド セル属性が設定されると、グリッドのパフォーマンスは 99.9% 低下します。スムーズにスクロールする代わりに、3 秒ごとに 1 回再描画できればラッキーです。これらのインスタンスのほとんどをgrid.SetColAttr代わりに使用して修正しました。これにより、パフォーマンスが以前の滑らかさに戻りましたが、それが機能しない場合が1 つあります。アプリケーションは、列内のすべてのセル (12,000 セル) を繰り返し処理し、データに対して何らかの処理を実行し、結果に基づいてカスタム グリッド セル属性を適用します。それが完了すると、グリッドは動作が遅くなり、悪夢のようになります。

この恐ろしいパフォーマンス ヒットを取り除き、カスタム セル属性を保持する方法はありますか? グリッドの内部の仕組みとそのセル属性を知っている人にとって、答えは非常に簡単だと思います。

ありがとう。

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

python - wxPython でグリッドのビューポートを制御するにはどうすればよいですか?

グリッド アプリケーションに検索機能を実装しようとしています。を使用してカーソルを移動できますSetGridCursor(self, row, col)が、グリッドの「ビューポート」を新しいカーソル位置に移動する方法がわかりません。つまり、ユーザーが探しているセルにカーソルが移動した場合でも、ユーザーはカーソル セルが見つかるまで手動でスクロールする必要があります。

グリッド カーソルをビューポートの中央に配置できるように、プログラムでグリッドをスクロールするにはどうすればよいですか?


ランダムに、この質問を書いている間、私は Grid wiki ページに行き、「スクロール」という単語を検索して見つけました:

MakeCellVisible( int row, int col )— 特定のセルを強制的に表示し、効果的にグリッドをスクロールして特定のセルに移動します

これで私の問題はほとんど解決します。セルをビューポートの中央に配置したいのですが、この関数はセルが画面の端に表示されるまでスクロールするだけです。カーソル位置にも影響せずに、グリッドのスクロール位置のみに影響する関数が見つかりません。考え?

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

python - wxPythonのGridSizeEventから新しい列サイズを取得することは可能ですか?

's列のwx.grid.Gridサイズが変更されると、awx.grid.GridSizeEventが発行されます。ドキュメントとdir(event)出力から、これはすべてのwxPythonの中で最も役に立たないクラスのようです。どうやら、列のサイズ変更に関する関連情報(どの列がサイズ変更されたか、以前はどのサイズで、現在はどのサイズであるか)はわかりません。

ペアのdictを維持し、{<column_index>: <column_size>}各サイズ変更イベントのデータから関連データを手動で導出できると思いますが、何かを見逃しており、これは必要ないと思います。

GridSizeEventすべての列サイズを手動で追跡しなくても、どの列のサイズが変更されたかを確認することはできますか?

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

python - wx.Grid と wx.StockCursor

フレーム内に wx.Grid ウィジェットを作成しました。ユーザーがグリッド ウィジェットを使用している場合は、カーソルの種類を変更したいと考えています。私はそれを行うことができましたが、ユーザーがセルwx.StockCursor.SetCursor methods行の境界線の交点の上にカーソルを移動すると、カーソルは標準のカーソルに戻り続けます。これは何が原因ですか?