teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

#追記

2021/02/24 14:00

投稿

Yuiti628
Yuiti628

スコア71

title CHANGED
File without changes
body CHANGED
@@ -24,6 +24,7 @@
24
24
 
25
25
  ```python3
26
26
 
27
+
27
28
  # tkinter
28
29
  from tkinter import *
29
30
  import tkinter as tk
@@ -41,65 +42,63 @@
41
42
  #フォームの作成
42
43
  def create_widgets(self,master):
43
44
 
44
-
45
-
46
-
47
45
  """
48
46
  スクロールバー Canvas
49
47
  """
50
48
 
51
49
  # フォルダー表示 フレーム
52
- Frm5 = Frame(master,bg="white")
50
+ Frm5 = Frame(master,bg="blue")
51
+ Frm5.bind("<Configure>", self.on_resize)
53
52
 
54
53
 
55
- canvas7 = Canvas(Frm5 ,bg="white" , height=170)
54
+ self.canvas7 = Canvas(Frm5 ,bg="white" , height=170)
56
55
 
57
56
 
58
57
  bar = Scrollbar(Frm5, orient=VERTICAL)
59
58
  bar.grid(row=0, column=1, sticky="ns")
60
- bar.config(command=canvas7.yview)
59
+ bar.config(command=self.canvas7.yview)
61
60
  bar.propagate(False)
62
61
 
63
62
 
64
63
  Frm5.grid_columnconfigure(0, weight=1)
65
- Frm5.pack(padx=10 ,pady=15 , fill="both")
64
+ Frm5.pack(padx=10 ,pady=5 , fill="both")
66
65
 
67
66
  # Canvas Widget を配置
68
- cframe2=Frame(canvas7 ,bg="white")
67
+ cframe2=Frame(self.canvas7 ,bg="red")
69
- canvas7.create_window((10, 10), window=cframe2, anchor="ne")
68
+ self.minicanca = self.canvas7.create_window((10, 10), window=cframe2, anchor="nw")
70
- canvas7.config(yscrollcommand=bar.set)
69
+ self.canvas7.config(yscrollcommand=bar.set)
71
- canvas7.grid(row=0, column=0, padx=10 ,pady=5,sticky="we")
70
+ self.canvas7.grid(row=0, column=0, padx=10 ,pady=5,sticky="we")
72
71
 
73
72
 
74
73
 
75
74
  self.Widget_items = []
76
75
 
77
76
 
78
-
79
77
  """
80
78
  アカウント名 , アイコンパス , メールアドレス , アイコン画像 ヘッダー
81
79
  """
82
80
  # アカウント名 ラベル
83
- L_no = tk.Label(cframe2)
81
+ L_no = tk.Label(cframe2,font=("12"))
84
82
  L_no.configure(text="No", bg="white")
85
83
  L_no.grid(row=0, column=0 ,pady=5,padx=5)
86
84
 
87
85
  # アカウント名 ラベル
88
- L_account = tk.Label(cframe2)
86
+ L_account = tk.Label(cframe2,font=("12"))
89
87
  L_account.configure(text="アカウント名", bg="white" )
90
88
  L_account.grid(row=0, column=1,pady=5,padx=5)
91
89
 
92
90
  # アイコンのファイル名 ラベル
93
- L_account = tk.Label(cframe2)
91
+ L_account = tk.Label(cframe2,font=("12"))
94
92
  L_account.configure(text="アイコンのファイル名", bg="white" )
95
93
  L_account.grid(row=0, column=2,pady=5,padx=5)
96
94
 
97
95
  # メールアドレス ラベル
98
- L_mail = tk.Label(cframe2)
96
+ L_mail = tk.Label(cframe2,font=("12"))
99
97
  L_mail.configure(text="メールアドレス", bg="white" )
100
98
  L_mail.grid(row=0, column=3 ,pady=5,padx=5)
101
99
 
102
100
 
101
+
103
102
  """
104
103
  アカウント名 , アイコンパス , メールアドレス , アイコン画像
105
104
  """
@@ -117,7 +116,7 @@
117
116
 
118
117
  # アカウント名 テキストボックス
119
118
  Text_aka = StringVar()
120
- self.aka_box = Entry(cframe2,textvariable=Text_aka ,width = 25)
119
+ self.aka_box = Entry(cframe2,textvariable=Text_aka ,width = 25 ,font=("12") )
121
120
  self.aka_box.grid(row=i +1, column=1, sticky="nw")
122
121
  items.append(self.aka_box)
123
122
 
@@ -129,7 +128,7 @@
129
128
  # アイコンのファイル名 テキストボックス
130
129
 
131
130
  Text_icon = StringVar()
132
- self.icon_box = Entry(ifrma,textvariable=Text_icon ,width = 15)
131
+ self.icon_box = Entry(ifrma,textvariable=Text_icon ,width = 15,font=("12"))
133
132
  self.icon_box.grid(row=0, column=0, sticky="nw")
134
133
  items.append(self.icon_box)
135
134
 
@@ -140,18 +139,23 @@
140
139
 
141
140
  # アカウント名 テキストボックス
142
141
  Text_mail1 = StringVar()
143
- self.mail1_box = Entry(cframe2 , textvariable=Text_mail1 ,width = 25 )
142
+ self.mail1_box = Entry(cframe2 , textvariable=Text_mail1 ,width = 25 ,font=("12"))
144
143
  self.mail1_box.grid(row=i +1, column=3, sticky="n")
145
144
  items.append(self.mail1_box)
146
145
 
147
146
  self.Widget_items.append(items)
148
147
 
149
148
  # canvas scroll
150
- canvas7.update_idletasks()
149
+ self.canvas7.update_idletasks()
151
- canvas7.config(scrollregion=canvas7.bbox("all"))
150
+ self.canvas7.config(scrollregion=self.canvas7.bbox("all"))
152
151
 
153
152
 
154
153
 
154
+ # キャンバスのリサイズ
155
+ def on_resize(self,event):
156
+ self.canvas7.itemconfigure(self.minicanca, width=event.width)
157
+ self.canvas7.config(scrollregion=self.canvas7.bbox("all"))
158
+
155
159
  if __name__ == "__main__":
156
160
 
157
161
  root = Tk()
@@ -160,4 +164,27 @@
160
164
 
161
165
 
162
166
 
167
+
168
+
163
- ```
169
+ ```
170
+
171
+
172
+
173
+
174
+ #追記
175
+ 説明不足で申し訳ありません。
176
+ フレームに色付けしました。
177
+ ![イメージ説明](c37de5edf7d0f9508d55ff1a32e0ed8d.png)
178
+
179
+ 切れていうというのは、現状の方はもっと右側にも表示しているものがあるのに表示されないということでした。
180
+
181
+ 背景が赤は`cframe2`なのですが、これは
182
+ `self.canvas7.create_window((10, 10), window=cframe2, anchor="nw")`
183
+ とcreate_windowの時に使用しています。
184
+ これが認識されていないのではないかと予想しているのですが、解決方法が分かりません。
185
+
186
+
187
+ 色をつけて思ったのですが、
188
+ キャンバスないの`Entry`をクリックすると`cframe2`の外枠が表示されます。
189
+ これを消す方法はないのでしょうか?
190
+ クリックしていない時は表示されていなません。

1

そこで、widthを指定してないで`cframe2`の横幅で作成したいのですが、方法が見つかりません。

2021/02/24 14:00

投稿

Yuiti628
Yuiti628

スコア71

title CHANGED
File without changes
body CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  1.フレームの横幅が自動で調整されない。
8
8
  windowsとMacで同じソースコードなのに、必要な横幅が違いました。
9
- そこで、widthを指定してない作成したいのですが、方法が見つかりません。
9
+ そこで、widthを指定してないで`cframe2`の横幅で作成したいのですが、方法が見つかりません。
10
10
  ![![イメージ説明](36f34f9da86a5f2e68dd246f98714560.png)](fdfef4f8da6a8f43de7a5054a16c05b5.png)
11
11
 
12
12