Python의 Tkinter에서 Checkbutton을 동적으로 만들려고합니다.
*소개
지난번에서 Python Tkinter의 기본 부분을 썼습니다.
이번에는 Tkinter의 Checkbutton을 동적으로 작성하는 방법을 올립니다.
*흐름
간단한 사고 방식의 흐름도를.
1. Tkinter 틀을 만드는
2. Checkbutton의 결과(체크되어 있는지 여부)와 Checkbutton의 핸들을 포함하는 글로벌 변수를 준비
3. Checkbutton을 만들고 BooleanVar의 내용과 Checkbutton의 핸들을 글로벌 변수에 저장
이상입니다.
*코드
파이썬#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter
import tkMessageBox
root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
#
# グローバル変数
#
hLabel = [] #ラベルのハンドルを格納します
hCheck = [] #チェックボックスのハンドルを格納します
CheckVal = [] #チェックボックスにチェックが入っているかどうかを格納します
#
# チェックボックスのチェック状況を取得する
#
def check(event):
for n in range(len(CheckVal)):
if CheckVal[n].get() == True:
label = Tkinter.Label(text=u"チェックされています")
label.place(x=100, y=20*n + 50)
else:
label = Tkinter.Label(text=u"チェックされていません")
label.place(x=100, y=20*n + 50)
#ラベルのハンドルを追加
hLabel.append(label)
#
# チェックボックスを動的に作成
#
def make(ebent):
#作成するチェックボックスの個数(Entryの値)を取得
num = Entry1.get()
#既出のチェックボックスやラベルを削除
for n in range(len(hCheck)):
hCheck[n].destroy()
hLabel[n].destroy()
#配列を空にする
del CheckVal[:]
del hCheck[:]
del hLabel[:]
#Entry1に入力された値分ループ
for n in range(int(num)):
#BooleanVarの作成
bl = Tkinter.BooleanVar()
#チェックボックスの値を決定
bl.set(False)
#チェックボックスの作成
b = Tkinter.Checkbutton(text = "項目" + str(n+1), variable = bl)
b.place(x=5, y=20*n + 50)
#チェックボックスの値を,リストに追加
CheckVal.append(bl)
#チェックボックスのハンドルをリストに追加
hCheck.append(b)
button1 = Tkinter.Button(root, text=u'Checkbuttonの作成',width=20)
button1.bind("<Button-1>",make)
button1.place(x=90, y=5)
button2 = Tkinter.Button(root, text=u'チェックの取得',width=15)
button2.bind("<Button-1>",check)
button2.place(x=265, y=5)
Entry1 = Tkinter.Entry(root, width=10)
Entry1.place(x=5, y=5)
root.mainloop()
위의 코드 실행 화면
Reference
이 문제에 관하여(Python의 Tkinter에서 Checkbutton을 동적으로 만들려고합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nnahito/items/41be8e02a6ebc91386e7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
간단한 사고 방식의 흐름도를.
1. Tkinter 틀을 만드는
2. Checkbutton의 결과(체크되어 있는지 여부)와 Checkbutton의 핸들을 포함하는 글로벌 변수를 준비
3. Checkbutton을 만들고 BooleanVar의 내용과 Checkbutton의 핸들을 글로벌 변수에 저장
이상입니다.
*코드
파이썬#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter
import tkMessageBox
root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
#
# グローバル変数
#
hLabel = [] #ラベルのハンドルを格納します
hCheck = [] #チェックボックスのハンドルを格納します
CheckVal = [] #チェックボックスにチェックが入っているかどうかを格納します
#
# チェックボックスのチェック状況を取得する
#
def check(event):
for n in range(len(CheckVal)):
if CheckVal[n].get() == True:
label = Tkinter.Label(text=u"チェックされています")
label.place(x=100, y=20*n + 50)
else:
label = Tkinter.Label(text=u"チェックされていません")
label.place(x=100, y=20*n + 50)
#ラベルのハンドルを追加
hLabel.append(label)
#
# チェックボックスを動的に作成
#
def make(ebent):
#作成するチェックボックスの個数(Entryの値)を取得
num = Entry1.get()
#既出のチェックボックスやラベルを削除
for n in range(len(hCheck)):
hCheck[n].destroy()
hLabel[n].destroy()
#配列を空にする
del CheckVal[:]
del hCheck[:]
del hLabel[:]
#Entry1に入力された値分ループ
for n in range(int(num)):
#BooleanVarの作成
bl = Tkinter.BooleanVar()
#チェックボックスの値を決定
bl.set(False)
#チェックボックスの作成
b = Tkinter.Checkbutton(text = "項目" + str(n+1), variable = bl)
b.place(x=5, y=20*n + 50)
#チェックボックスの値を,リストに追加
CheckVal.append(bl)
#チェックボックスのハンドルをリストに追加
hCheck.append(b)
button1 = Tkinter.Button(root, text=u'Checkbuttonの作成',width=20)
button1.bind("<Button-1>",make)
button1.place(x=90, y=5)
button2 = Tkinter.Button(root, text=u'チェックの取得',width=15)
button2.bind("<Button-1>",check)
button2.place(x=265, y=5)
Entry1 = Tkinter.Entry(root, width=10)
Entry1.place(x=5, y=5)
root.mainloop()
위의 코드 실행 화면
Reference
이 문제에 관하여(Python의 Tkinter에서 Checkbutton을 동적으로 만들려고합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nnahito/items/41be8e02a6ebc91386e7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter
import tkMessageBox
root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
#
# グローバル変数
#
hLabel = [] #ラベルのハンドルを格納します
hCheck = [] #チェックボックスのハンドルを格納します
CheckVal = [] #チェックボックスにチェックが入っているかどうかを格納します
#
# チェックボックスのチェック状況を取得する
#
def check(event):
for n in range(len(CheckVal)):
if CheckVal[n].get() == True:
label = Tkinter.Label(text=u"チェックされています")
label.place(x=100, y=20*n + 50)
else:
label = Tkinter.Label(text=u"チェックされていません")
label.place(x=100, y=20*n + 50)
#ラベルのハンドルを追加
hLabel.append(label)
#
# チェックボックスを動的に作成
#
def make(ebent):
#作成するチェックボックスの個数(Entryの値)を取得
num = Entry1.get()
#既出のチェックボックスやラベルを削除
for n in range(len(hCheck)):
hCheck[n].destroy()
hLabel[n].destroy()
#配列を空にする
del CheckVal[:]
del hCheck[:]
del hLabel[:]
#Entry1に入力された値分ループ
for n in range(int(num)):
#BooleanVarの作成
bl = Tkinter.BooleanVar()
#チェックボックスの値を決定
bl.set(False)
#チェックボックスの作成
b = Tkinter.Checkbutton(text = "項目" + str(n+1), variable = bl)
b.place(x=5, y=20*n + 50)
#チェックボックスの値を,リストに追加
CheckVal.append(bl)
#チェックボックスのハンドルをリストに追加
hCheck.append(b)
button1 = Tkinter.Button(root, text=u'Checkbuttonの作成',width=20)
button1.bind("<Button-1>",make)
button1.place(x=90, y=5)
button2 = Tkinter.Button(root, text=u'チェックの取得',width=15)
button2.bind("<Button-1>",check)
button2.place(x=265, y=5)
Entry1 = Tkinter.Entry(root, width=10)
Entry1.place(x=5, y=5)
root.mainloop()
Reference
이 문제에 관하여(Python의 Tkinter에서 Checkbutton을 동적으로 만들려고합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nnahito/items/41be8e02a6ebc91386e7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)