前提・実現したいこと
チェックボックスの作成はできたのですが、チェックボックスを選択している場合には「1」、選択していない場合には「0」を得て、その情報を配列として出力したいのですが、やり方が分からないので質問しました。できれば下記のソースコードにつけて頂けると幸いです。
発生している問題・エラーメッセージ
それぞれのチェックボックスから値を得ることができない。
エラーメッセージ なし ### 該当のソースコード python3.x # -*- coding: utf-8 -*- import tkinter as tk import PIL.Image, PIL.ImageTk import tkinter as tk import csv result =[] with open("新問診票.csv",encoding="utf-8") as f: for row in csv.reader(f): result.append(row) # = f"{row}" #print(result) class App(tk.Tk): # 呪文 def __init__(self, *args, **kwargs): # 呪文 tk.Tk.__init__(self, *args, **kwargs) # ウィンドウタイトルを決定 self.title("臓腑状態推定システム") # ウィンドウの大きさを決定 self.geometry("1000x1000") # ウィンドウのグリッドを 1x1 にする # この処理をコメントアウトすると配置がズレる self.grid_rowconfigure(0, weight=1) self.grid_columnconfigure(0, weight=1) #-----------------------------------main_frame----------------------------- # メインページフレーム作成 self.main_frame = tk.Frame() self.main_frame.grid(row=0, column=0, sticky="nsew") # タイトルラベル作成 self.titleLabel = tk.Label(self.main_frame, text="臓腑状態推定システム", font=('Helvetica', '35')) self.titleLabel.pack(anchor='center') # フレーム1に移動するボタン self.changePageButton = tk.Button(self.main_frame, text="開始する", command=lambda : self.changePage(self.frame1)) self.changePageButton.pack() #-------------------------------------------------------------------------- #-----------------------------------frame1--------------------------------- # 移動先フレーム作成 self.frame1 = tk.Frame() self.frame1.grid(row=0, column=0, sticky="nsew") # タイトルラベル作成 self.titleLabel = tk.Label(self.frame1, text="該当する問診を選んでください", font=('Helvetica', '20')) self.titleLabel.pack(anchor='center') #チェックボックスの作成 bln = tk.BooleanVar() bln.set(True) # チェックボタン作成・貼り付け for num in range(117): chk = tk.Checkbutton(self.frame1, variable=bln, text=result[num+1][0]+result[num+1][1]) bln = tk.BooleanVar() if num<30: chk.place(x=0,y=100+20*num) bln.get() elif num>29 and num<=59: chk.place(x=210,y=100+20*(num-30)) bln.get() elif num>58 and num<=89: chk.place(x=410,y=100+20*(num-60)) bln.get() else: chk.place(x=610,y=100+20*(num-90)) bln.get() # フレーム1からmainフレームに戻るボタン self.back_button = tk.Button(self.frame1, text="次へ", command=lambda : self.changePage(self.frame2)) self.back_button.pack() print(bln.get()) #-----------------------------------frame last--------------------------------- # 移動先フレーム作成 self.frame2 = tk.Frame() self.frame2.grid(row=0, column=0, sticky="nsew") # タイトルラベル作成 self.titleLabel = tk.Label(self.frame2, text="結果を出力します", font=('Helvetica', '20')) self.titleLabel.pack(anchor='center') p=0.24 q=0.15 r=0,11 s=1.0 t=0.3 u=0.25 v=0.25 w=0.86 x=0.56 y=0.65 text = tk.Label(self.frame2, text="肝臓+は"+str(p)) text.pack() text1 = tk.Label(self.frame2, text="肝臓-は"+str(q)) text1.pack() text2 = tk.Label(self.frame2, text="心臓+は"+str(r)) text2.pack() text3 = tk.Label(self.frame2, text="心臓-は"+str(s)) text3.pack() text4 = tk.Label(self.frame2, text="脾臓+は"+str(t)) text4.pack() text5= tk.Label(self.frame2, text="脾臓-は"+str(u)) text5.pack() text6 = tk.Label(self.frame2, text="肺+は"+str(v)) text6.pack() text7 = tk.Label(self.frame2, text="肺-は"+str(w)) text7.pack() text8 = tk.Label(self.frame2, text="腎臓+は"+str(x)) text8.pack() text9 = tk.Label(self.frame2, text="腎臓-は"+str(y)) text9.pack() #-------------------------------------------------------------------------- #main_frameを一番上に表示 self.main_frame.tkraise() def changePage(self, page): ''' 画面遷移用の関数 ''' page.tkraise() if __name__ == "__main__": app = App() app.mainloop() ソースコード
試したこと
for文を使い値を得ようとしましたが、できませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/26 05:52