質問編集履歴

3

提案された解決方法通りに実行して解決しました。正常に動作したコードを載せます

2024/07/18 05:28

投稿

ykasaf7
ykasaf7

スコア10

test CHANGED
File without changes
test CHANGED
@@ -43,12 +43,13 @@
43
43
  root.focus_force()
44
44
 
45
45
 
46
- def Selection():
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() #コメントの通りに追加 20240718
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

コメントを受けてプログラムを修正しましたが、要求通りの動作にはなりませんでした。

2024/07/18 04:11

投稿

ykasaf7
ykasaf7

スコア10

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関数を実行後にラジオボタンの関数を実行すると正常に動作できないことが分かりました。

2024/07/18 01:46

投稿

ykasaf7
ykasaf7

スコア10

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
- Res = Selection()
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