回答編集履歴

3

実装方法のソースコードへのリンクを追記

2021/10/25 23:47

投稿

teamikl
teamikl

スコア8760

test CHANGED
@@ -40,6 +40,10 @@
40
40
 
41
41
 
42
42
 
43
+ ※ 「疑似的に」とした理由は、実装方法により操作にラグが発生する事があります。
44
+
45
+
46
+
43
47
 
44
48
 
45
49
  ----
@@ -54,13 +58,17 @@
54
58
 
55
59
  - PyQt/PySide ... QTableView
56
60
 
57
-  Qt の実装例ですが、2つのウィジェットを同期させて表示する方法
61
+  Qt の実装例ですが、2つのウィジェットを同期させて表示する方法(C++言語)
58
62
 
59
63
  https://doc.qt.io/qt-5/qtwidgets-itemviews-frozencolumn-example.html
60
64
 
61
65
  - wxPython ... wx.grid.Grid FreezeTo メソッド
62
66
 
67
+  wxPythonの Grid では row, col 指定だけで簡単に実現できます。
68
+
69
+  https://github.com/wxWidgets/wxWidgets/blob/master/src/generic/grid.cpp
70
+
63
-  row, col 指定だけで簡単に実現できます。(内部では (A) と同じような実装方法)
71
+  該当箇所(C++言語): FreezeTo(), InitializeFrozenWindows() 内部では (A) と同じような実装方法
64
72
 
65
73
  - tcl/tk には [tktable](https://wiki.tcl-lang.org/page/Tktable) というテーブル用の外部ライブラリがあり
66
74
 

2

ウィジェットの同期について、他の対応項目を追記

2021/10/25 23:47

投稿

teamikl
teamikl

スコア8760

test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  - テーブルの表示行を同期する為、必要に応じてスクロール時の処理を追加
22
22
 
23
-  縦スクロールバーを動かした時、テーブル内でカーソル移動した時、等。
23
+  縦スクロールバーを動かした時、テーブル内でカーソル移動した時、行を選択した時、等。
24
24
 
25
25
 
26
26
 

1

追記: 実装のヒント

2021/10/25 13:47

投稿

teamikl
teamikl

スコア8760

test CHANGED
@@ -5,6 +5,24 @@
5
5
  (A) 疑似的に実装するには、Treeview を2つ使い、
6
6
 
7
7
  表示内容を同期する事になります。
8
+
9
+
10
+
11
+ 実装方法のヒント:
12
+
13
+ - ウィジェットは同じ位置に重ね合わせて配置が可能 (lift, lower)
14
+
15
+ - 固定列として表示するウィジェットは縦スクロールのみ追従
16
+
17
+  横スクロール時は、下に配置されたテーブルのみスクロールし、
18
+
19
+  上に配置されたテーブルはスクロールせずに固定列になる。
20
+
21
+ - テーブルの表示行を同期する為、必要に応じてスクロール時の処理を追加
22
+
23
+  縦スクロールバーを動かした時、テーブル内でカーソル移動した時、等。
24
+
25
+
8
26
 
9
27
 
10
28