PythonのTkinterでCheckbuttonを動的に作成

元ネタのページ

Raspberry-PIのPython3で動作するように修正

# !/usr/bin/python3
# -*- coding: utf8 -*-
import sys
import tkinter as Tkinter


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()

FrontPage


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-05-25 (土) 01:24:59 (1182d)