回答編集履歴
3
実装方法のソースコードへのリンクを追記
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
|
-
ro
|
71
|
+
該当箇所(C++言語): FreezeTo(), InitializeFrozenWindows() 内部では (A) と同じような実装方法
|
64
72
|
|
65
73
|
- tcl/tk には [tktable](https://wiki.tcl-lang.org/page/Tktable) というテーブル用の外部ライブラリがあり
|
66
74
|
|
2
ウィジェットの同期について、他の対応項目を追記
test
CHANGED
@@ -20,7 +20,7 @@
|
|
20
20
|
|
21
21
|
- テーブルの表示行を同期する為、必要に応じてスクロール時の処理を追加
|
22
22
|
|
23
|
-
縦スクロールバーを動かした時、テーブル内でカーソル移動した時、等。
|
23
|
+
縦スクロールバーを動かした時、テーブル内でカーソル移動した時、行を選択した時、等。
|
24
24
|
|
25
25
|
|
26
26
|
|
1
追記: 実装のヒント
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
|
|