[英]ttk checkbutton appears when loaded up with black box in it
取自: tkk 選中按鈕在加載時出現黑框
提供的解決方案與一個復選按鈕配合良好
import tkinter as Tk
from tkinter import IntVar
from tkinter.ttk import Frame, Checkbutton
class TestGui(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.var1 = IntVar()
self.var1.set(1)
button = Checkbutton(parent,
text="Pick me, pick me!",
variable=self.var1) # note difference here
button.grid()
root = Tk.Tk()
app = TestGui(root)
root.mainloop()
但是當我在 class 中使用循環創建多個按鈕時,這只適用於最后一個按鈕。
無法真正解釋為什么,但我想通了。
不起作用(使用列表):
varss = []
for n in range (2):
date = datetime.today() + timedelta(days=n)
day = datetime.strftime(date, "%d.%m.%y")
for h in range(24):
date = date.replace(hour=h,minute=0)
txt_date = datetime.strftime(date,"%H:%M")
var = IntVar()
c = ttk.Checkbutton(tour_frame,text = txt_date,variable = var)
var.set(1)
c.grid(column = n , row = h + 1)
varss.append(var)
確實有效(使用字典列表):
l= []
for n in range (2):
date = datetime.today() + timedelta(days=n)
day = datetime.strftime(date, "%d.%m.%y")
for h in range(24):
date = date.replace(hour=h,minute=0)
txt_date = datetime.strftime(date,"%H:%M")
var = IntVar()
c = ttk.Checkbutton(tour_frame,text = txt_date,variable = var)
var.set(1)
c.grid(column = n , row = h + 1)
l.append(dict(datetime = date.replace(hour = h,minute=0,second=False,microsecond=False),value = var ))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.