簡體   English   中英

tkinter 小部件未出現

[英]tkinter widget doesn't appear

我正在嘗試制作一個非常簡單的 tkinter 應用程序,但我似乎無法弄清楚為什么我的一個小部件沒有出現。 下面的代碼應該在按鈕-標簽對上方的一行中呈現字符串“30”,但它只顯示按鈕-標簽對,沒有額外的字符串。

from tkinter import *
from tkinter import ttk

data = {
    'projects': {
      'project': {
           'name': 'Project',
           'starttime': 0
    },
       'another': {
           'name': 'Another',
           'starttime': 0
       }
    },
    'clock': {
        'clockedin?': False,
        'time': 30
    }
}

def makebutton():
    row = 1
    for item in data['projects']:
        ttk.Button(frm, text=data['projects'][item]['name']).grid(column=0,row=row)
        ttk.Label(frm, text=data['projects'][item]['starttime']).grid(column=1, row=row)
        row = row + 1

root = Tk()

frm = ttk.Frame(root, padding=10)
frm.grid()

ttk.Label(frm, text=data['clock']['time']).grid(column=0, row=2) # should say '30'

makebutton()

root.mainloop()

如果我將'30' label 行makebutton()下方,它會顯示'30',但在底部按鈕上方。

我在這里有什么誤解?

您將 label 放在第 2 行,然后在makebutton小部件放在第 1 行和第 2 行。由於在創建makebutton后調用了 makebutton,因此它創建的第二個按鈕位於 ZD304BA20E96D8088EEABAC851 的頂部。

您應該將 label 移動到第 3 行,或者在makebutton的頂部將row初始化為0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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