質問編集履歴
3
提案された解決方法通りに実行して解決しました。正常に動作したコードを載せます
test
CHANGED
File without changes
|
test
CHANGED
@@ -43,12 +43,13 @@
|
|
43
43
|
root.focus_force()
|
44
44
|
|
45
45
|
|
46
|
-
def Se
|
46
|
+
def Secret():
|
47
47
|
global answer
|
48
48
|
|
49
49
|
item = ["1","2","3","4","5","6"]
|
50
50
|
|
51
|
-
root = tk.Tk()
|
51
|
+
#root = tk.Tk()
|
52
|
+
root = tk.Toplevel() #root = tk.Tk()から変更
|
52
53
|
root.geometry("300x200")
|
53
54
|
root.title("選択画面")
|
54
55
|
val = tk.IntVar()
|
@@ -64,10 +65,10 @@
|
|
64
65
|
answer = ch
|
65
66
|
#print(item[ch])
|
66
67
|
root.destroy()
|
67
|
-
root.quit()
|
68
|
+
root.quit()
|
68
69
|
|
69
70
|
button = tk.Button(root, text = "OK", command = choice).pack()
|
70
|
-
|
71
|
+
|
71
72
|
root.mainloop()
|
72
73
|
return answer
|
73
74
|
|
2
コメントを受けてプログラムを修正しましたが、要求通りの動作にはなりませんでした。
test
CHANGED
File without changes
|
test
CHANGED
@@ -64,6 +64,7 @@
|
|
64
64
|
answer = ch
|
65
65
|
#print(item[ch])
|
66
66
|
root.destroy()
|
67
|
+
root.quit() #コメントの通りに追加 20240718
|
67
68
|
|
68
69
|
button = tk.Button(root, text = "OK", command = choice).pack()
|
69
70
|
|
@@ -87,6 +88,10 @@
|
|
87
88
|
前回の抜粋部分は正常に動作していることを確認できました。
|
88
89
|
他のプログラムが干渉しているみたいですので、再確認した結果
|
89
90
|
上記コードだとラジオボタンが正常に動作できませんでした。
|
91
|
+
(2024.07.18)
|
92
|
+
「root.quit()」をコメント通りの位置に追加しました。
|
93
|
+
Selection関数の返し値がありましたが、全て「0」が返ってきます。
|
94
|
+
また、ラジオボタンの機能も正常に動作していませんでした。
|
90
95
|
|
91
96
|
### 補足
|
92
97
|
|
1
前回のソースコードは内容が不足していました。CautionMessage関数を実行後にラジオボタンの関数を実行すると正常に動作できないことが分かりました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -20,41 +20,58 @@
|
|
20
20
|
### 該当のソースコード
|
21
21
|
|
22
22
|
```
|
23
|
+
import tkinter as tk
|
24
|
+
from tkinter import messagebox as Msgbox
|
25
|
+
from tkinter import simpledialog
|
26
|
+
|
27
|
+
def CautionMessage(): #プログラム実行前のメッセージ
|
28
|
+
a = "プログラムを実行します。"
|
29
|
+
|
30
|
+
msg_front()
|
31
|
+
res = Msgbox.askyesno('確認',a)
|
32
|
+
|
33
|
+
if res == False:
|
34
|
+
msg_front()
|
35
|
+
sys.exit()
|
36
|
+
|
37
|
+
#messageboxを最前面に表示
|
38
|
+
def msg_front():
|
39
|
+
root = tk.Tk()
|
40
|
+
root.attributes('-topmost', True)
|
41
|
+
root.withdraw()
|
42
|
+
root.lift()
|
43
|
+
root.focus_force()
|
44
|
+
|
45
|
+
|
23
46
|
def Selection():
|
24
47
|
global answer
|
25
48
|
|
26
|
-
item = ["","","","","",""]
|
49
|
+
item = ["1","2","3","4","5","6"]
|
27
|
-
item[0] = "1"
|
28
|
-
item[1] = "2"
|
29
|
-
item[2] = "3"
|
30
|
-
item[3] = "4"
|
31
|
-
item[4] = "5"
|
32
|
-
item[5] = "6"
|
33
50
|
|
34
|
-
rt = tk.Tk()
|
51
|
+
root = tk.Tk()
|
35
|
-
rt.geometry("300x200")
|
52
|
+
root.geometry("300x200")
|
36
|
-
rt.title("選択画面")
|
53
|
+
root.title("選択画面")
|
37
54
|
val = tk.IntVar()
|
38
55
|
|
39
56
|
|
40
57
|
#ラジオボタン機構、itemのどれか1つしか選択できない。
|
41
58
|
for i in range(len(item)):
|
42
|
-
tk.Radiobutton(rt, text = item[i], value = i, variable = val).pack(anchor = tk.W)
|
59
|
+
tk.Radiobutton(root, text = item[i], value = i, variable = val).pack(anchor = tk.W)
|
43
|
-
|
44
60
|
|
45
61
|
def choice():
|
46
62
|
global answer
|
47
63
|
ch = val.get()
|
48
64
|
answer = ch
|
49
65
|
#print(item[ch])
|
50
|
-
rt.destroy()
|
66
|
+
root.destroy()
|
51
67
|
|
52
|
-
button = tk.Button(rt, text = "OK", command = choice).pack()
|
68
|
+
button = tk.Button(root, text = "OK", command = choice).pack()
|
53
|
-
|
69
|
+
|
54
|
-
rt.mainloop()
|
70
|
+
root.mainloop()
|
55
71
|
return answer
|
56
72
|
|
73
|
+
CautionMessage()
|
57
|
-
|
74
|
+
print(Selection())
|
58
75
|
```
|
59
76
|
|
60
77
|
### 試したこと・調べたこと
|
@@ -65,6 +82,11 @@
|
|
65
82
|
|
66
83
|
##### 上記の詳細・結果
|
67
84
|
ネット上のコードをそのまま試しましたが、返し値を取得できませんでした。
|
85
|
+
(2024.07.18変更)
|
86
|
+
前回はラジオボタンに関する部分のみを抜粋しましたが、
|
87
|
+
前回の抜粋部分は正常に動作していることを確認できました。
|
88
|
+
他のプログラムが干渉しているみたいですので、再確認した結果
|
89
|
+
上記コードだとラジオボタンが正常に動作できませんでした。
|
68
90
|
|
69
91
|
### 補足
|
70
92
|
|