質問編集履歴

3

補足

2022/05/04 12:58

投稿

netz-eng
netz-eng

スコア105

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,7 @@
6
6
  スクロールバーをクリックすると、△▽が現れます。
7
7
 
8
8
  使用感に変わりはなく、ただGUIのデザイン的に気に入らないだけなのですが、もやもやしております。
9
- app.mainloop()した時点で、△▽を表示させる方法はありますか?
9
+ `app.mainloop()`した時点で、△▽を表示させる方法はありますか?
10
10
 
11
11
 
12
12
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-04-29/76bf931c-fc15-4fb1-b8ba-203de4375cb7.png)
@@ -49,7 +49,7 @@
49
49
  下図のように指定しても**背景色、スクロールバー横幅は変わらず**、
50
50
  また**ウィジェット上にマウスカーソルがあるときのみ△▽が表示**されます。
51
51
 
52
- また、layout内にfocusに関する項目は見当たりません。
52
+ また、layout内に`focus`に関する項目は見当たりません。
53
53
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-05-04/e25b89de-1943-467f-8546-a6554fdcaa62.png)
54
54
  ```Python
55
55
  ybar = ttk.Scrollbar(app, orient=tk.VERTICAL, command=can.yview)
@@ -68,7 +68,7 @@
68
68
  ```
69
69
 
70
70
  (B)テーマを指定
71
- テーマをdefaultに変更しました。外観が変わって△▽が表示されました。
71
+ テーマを`default`に変更しました。外観が変わって△▽が表示されました。
72
72
  が、その他の指定項目に変化はありません。
73
73
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-05-04/ae24dd25-1e0e-4683-986e-66b88d4c12d1.png)
74
74
  ```Python
@@ -76,9 +76,22 @@
76
76
  ```
77
77
 
78
78
  ttk.Scrollbarの問題としては、以下が個人的なネックです。
79
- **タッチパッドでのスクロールに対応していない**
79
+ ~~タッチパッドでのスクロールに対応していない~~
80
+ →下記コードで、Entryにマウススクロールをbindすることで実装(なぜかEntryウィジェットの上以外でもマウススクロール関数が呼び出される)
81
+
80
- ◆色や横幅などを指定しても変更できない。
82
+ **色や横幅などを指定しても変更できない**
83
+ →デフォルトのstyleのthemeは`vista`で、`winnative`に変えることで好みの外観に変更(色や横幅などの情報は相変わらず変更できない)
84
+
81
- (◆style.layoutに、focusに関する項目がない。常に△▽を表示するには、用意されたテーマを使用する必要がある)
85
+ (◆`style.layout`に、`focus`に関する項目がない。常に△▽を表示するには、用意されたテーマを使用する必要がある)
86
+
87
+ ```Python
88
+ # マウススクロール関数
89
+ def MouseScroll(event):
90
+ can.yview("scroll", int(-1*(event.delta/120)), "units")
91
+
92
+ # ループ中にマウススクロール関数を各ウィジェットにbind
93
+ tex[i].bind_all("<MouseWheel>", MouseScroll)
94
+ ```
82
95
 
83
96
  ### 補足情報(FW/ツールのバージョンなど)
84
97
  Windows11

2

追記

2022/05/04 07:33

投稿

netz-eng
netz-eng

スコア105

test CHANGED
File without changes
test CHANGED
@@ -44,7 +44,41 @@
44
44
 
45
45
  app.mainloop()
46
46
  ```
47
+ ### 試したこと(ttk.Scrollbar)
48
+ (A)スクロールバーをtk→ttkに変更しました。
49
+ 下図のように指定しても**背景色、スクロールバー横幅は変わらず**、
50
+ また**ウィジェット上にマウスカーソルがあるときのみ△▽が表示**されます。
47
51
 
52
+ また、layout内にfocusに関する項目は見当たりません。
53
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-05-04/e25b89de-1943-467f-8546-a6554fdcaa62.png)
54
+ ```Python
55
+ ybar = ttk.Scrollbar(app, orient=tk.VERTICAL, command=can.yview)
56
+ style = ttk.Style()
57
+ style.configure("c.Vertical.TScrollbar", background="steelblue", arrowsize=50)
58
+ ybar.configure(style="c.Vertical.TScrollbar")
59
+
60
+ pprint(style.layout("c.Vertical.TScrollbar"))
61
+ >[('Vertical.Scrollbar.trough',
62
+ {'children': [('Vertical.Scrollbar.uparrow', {'side': 'top', 'sticky': ''}),
63
+ ('Vertical.Scrollbar.downarrow',
64
+ {'side': 'bottom', 'sticky': ''}),
65
+ ('Vertical.Scrollbar.thumb',
66
+ {'expand': '1', 'sticky': 'nswe'})],
67
+ 'sticky': 'ns'})]
68
+ ```
69
+
70
+ (B)テーマを指定
71
+ テーマをdefaultに変更しました。外観が変わって△▽が表示されました。
72
+ が、その他の指定項目に変化はありません。
73
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-05-04/ae24dd25-1e0e-4683-986e-66b88d4c12d1.png)
74
+ ```Python
75
+ style.theme_use("default")
76
+ ```
77
+
78
+ ttk.Scrollbarの問題としては、以下が個人的なネックです。
79
+ ◆**タッチパッドでのスクロールに対応していない**
80
+ ◆色や横幅などを指定しても変更できない。
81
+ (◆style.layoutに、focusに関する項目がない。常に△▽を表示するには、用意されたテーマを使用する必要がある)
48
82
 
49
83
  ### 補足情報(FW/ツールのバージョンなど)
50
84
  Windows11

1

バージョン情報の修正

2022/05/01 11:30

投稿

netz-eng
netz-eng

スコア105

test CHANGED
File without changes
test CHANGED
@@ -47,6 +47,6 @@
47
47
 
48
48
 
49
49
  ### 補足情報(FW/ツールのバージョンなど)
50
- Windows10
50
+ Windows11
51
51
  Python 3.9.7
52
52
  tk 8.6.11