簡體   English   中英

ttk checkbutton 加載時出現黑框

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM