如何在tkin中动态创建多个标签

2024-05-15 22:08:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个动态的文本标签,像这样 enter image description here

示例代码如下:

name=[vj,aj,bon...]
percentage=[96,85,90,65....]
domain=[html,js,css,java...]

还有视图按钮。我不知道该怎么做。在


Tags: 代码name文本示例domainhtmljs动态
1条回答
网友
1楼 · 发布于 2024-05-15 22:08:26

您可以定义一个自定义小部件,将四个对象(3个标签和1个按钮)包装在frame内,然后根据数组创建自定义小部件。下面是示例代码:

from tkinter import *

root = Tk()

class MyLabel(Frame):
  def __init__(self, master, name, percentage, domain):
    Frame.__init__(self, master, bd=2, relief='raised')
    Label(self, text='%3d%%'%percentage, font=('Arial', 24), fg='#88F', width=4, anchor='e').grid(row=0, column=0, rowspan=2)
    Label(self, text=name, font=('Aria', 16, 'bold'), fg='black', width=15, anchor='w').grid(row=0, column=1)
    Label(self, text=', '.join(domain), font=('Aria', 10), fg='black').grid(row=1, column=1, sticky='w')
    Button(self, text='View', fg='white', bg='#44F').grid(row=0, column=2, rowspan=2, padx=10)
    self.columnconfigure(1, weight=1)

name = ['vj', 'aj', 'bon', 'hi']
percentage = [96, 85, 90, 65]
domain = [['html','css','js'], ['java','kotlin','python'], ['html','python'], ['java','html','css','js']]

for i, n in enumerate(name):
  MyLabel(root, n, percentage[i], domain[i]).pack(expand=True, fill='x')

root.mainloop()

以及输出:

enter image description here

相关问题 更多 >