質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

解決済

[Python3] tkinter, チェックボタンで取得したvalue値を参照し関数を実行したい

3265462164
3265462164

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

1回答

0評価

1クリップ

9閲覧

投稿2019/09/24 08:19

Python3で、tkinterを使用して、下記のコードを作成しました。

python

from tkinter import * from tkinter import ttk root = Tk() root.title('測定CH設定') root.geometry("500x350+640+40") frame1 = ttk.Labelframe(root, text='測定帯域選択', padding=5) frame1.grid(row=0, column=0, columnspan=1, padx=15, pady=10, sticky='w') frame2 = ttk.Labelframe(root, text='2.4GHz',padding=5) frame2.grid(row=1,column=0, columnspan=1, padx=15, pady=10, sticky='nw') frame3 = ttk.Labelframe(root, text='5GHz',padding=5) frame3.grid(row=1,column=1, columnspan=1, padx=10, pady=10, sticky='w') selected_frame = IntVar() def change_selected_frame(): if selected_frame.get() == 0: for child in frame2.winfo_children(): child.configure(state='enable') for child in frame3.winfo_children(): child.configure(state='disable') elif selected_frame.get() == 1: for child in frame2.winfo_children(): child.configure(state='disable') for child in frame3.winfo_children(): child.configure(state='enable') else: for child in frame2.winfo_children(): child.configure(state='disable') for child in frame3.winfo_children(): child.configure(state='disable') rb1 = ttk.Radiobutton(frame1, text='2.4GHz ', variable=selected_frame, value=0, command=change_selected_frame) rb1.grid(row=1,column=0,pady=5) rb2 = ttk.Radiobutton(frame1,text='5GHz', variable=selected_frame, value=1, command=change_selected_frame) rb2.grid(row=1,column=1,pady=5) class val_2G: def __init__(self,name,set_frame,row_no): self.bool=BooleanVar() self.bool.set(False) self.name=name self.Cbtn=ttk.Checkbutton(set_frame, text=self.name, variable=self.bool) self.Cbtn.grid(row=row_no,column=0, columnspan=1, padx=15, pady=5, sticky='w') class val_5G: def __init__(self,name,set_frame,row_no): self.bool=BooleanVar() self.bool.set(False) self.name=name self.Cbtn=ttk.Checkbutton(set_frame, text=self.name, variable=self.bool) self.Cbtn.grid(row=row_no,column=0, columnspan=1, padx=15, pady=5, sticky='w') val_2G1=val_2G('CH1',frame2,6) val_2G2=val_2G('CH2',frame2,7) val_2G3=val_2G('CH3',frame2,8) val_2G_list=[val_2G1, val_2G2, val_2G3] val_5G36=val_5G('CH36',frame3,6) val_5G40=val_5G('CH40',frame3,7) val_5G44=val_5G('CH44',frame3,8) val_5G_list=[val_5G36, val_5G40, val_5G44] def check_all_2G_checkboxes(): for val in val_2G_list: val.bool.set(True) def clear_all_2G_checkboxes(): for val in val_2G_list: val.bool.set(False) def check_all_5G_checkboxes(): for val in val_5G_list: val.bool.set(True) def clear_all_5G_checkboxes(): for val in val_5G_list: val.bool.set(False) def check_box(): selected_channel='' for val in val_2G_list: if val.bool.get(): if selected_channel=='': selected_channel+=val.name else: selected_channel+=' & '+val.name for val in val_5G_list: if val.bool.get(): if selected_channel=='': selected_channel+=val.name else: selected_channel+=' & '+val.name print(selected_channel) def quit(): root.destroy() btn1 = ttk.Button(frame2, text='全選択', padding=5, command=check_all_2G_checkboxes) btn1.grid(row=5,column=0,pady=5) btn2 = ttk.Button(frame2, text='全解除', padding=5, command=clear_all_2G_checkboxes) btn2.grid(row=5,column=1,pady=5) btn3 = ttk.Button(frame3, text='全選択', padding=5, command=check_all_5G_checkboxes) btn3.grid(row=5,column=0,pady=5) btn4 = ttk.Button(frame3, text='全解除', padding=5, command=clear_all_5G_checkboxes) btn4.grid(row=5,column=1,pady=5) btn5 = ttk.Button(text='測定', padding=5, command=check_box) btn5.grid(row=5,column=0,pady=5) btn6 = ttk.Button(text='中止', padding=5, command=quit) btn6.grid(row=5,column=1,pady=5) selected_frame.set(-1) change_selected_frame() root.mainloop()

選択されたラジオボタン、チェックボタンの情報をもとに次のコードを設定したいのですが、
どのように関数を組み込めばいいのか解りません。

python

from selenium import webdriver driver = webdriver.Firefox() driver.get('http://router.asus.com') driver.find_element_by_id('login_username').send_keys('admin') driver.find_element_by_name('login_passwd').send_keys('password') driver.find_element_by_class_name('button').click() driver.maximize_window() driver.get('http://router.asus.com/Advanced_Wireless_Content.asp') from selenium.webdriver.support.ui import Select f2g = driver.find_elements_by_name('wl_unit') Select(f2g[2]).select_by_value("0") # ← 周波数帯域選択、0か1の値 f2g = driver.find_element_by_name('wl_channel') f2g_ch = Select(f2g) f2g_ch.select_by_value("3") # ← チャンネル指定(周波数帯域選択が1の場合[1,2,3] 選択が1の場合[36,40,44]) driver.find_element_by_id('applyButton').click() from selenium.webdriver.common.alert import Alert Alert(driver).accept() コード

初心者のため解り辛いコードで大変申しわけございません。

もしご存知の方がいたらご教授いただけないでしょうか。
よろしくお願いいたします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。