我需要编写一个程序,首先从 csv 文件中读取电子邮件地址,然后绘制其中 5 个。我希望它显示在桌面应用程序中。我不知道如何在按下按钮后在标签字段中显示函数结果。
import csv
import random
import tkinter as tk
from tkinter import messagebox
with open('test.csv') as csv_plik:
csv_reader = csv.reader(csv_plik, delimiter=',')
numbers = []
for row in csv_reader:
number = row[0]
numbers.append(number)
lenght = len(numbers)
def losowanie():
i = 0
z = 1
while i < 5:
lenght = len(numbers)
y = lenght
c = random.randint(0, y - z)
print(numbers[c])
numbers.remove(numbers[c])
i+=1
main = tk.Tk()
main.geometry('400x400')
w = tk.Button(main, text = 'Losuj', command = main.destroy)
w.place(x=180, y=180)
y = tk.Label(main, text='losowanie')
y.pack()
y.place(x = 180, y = 220)
main.mainloop()
最佳答案
要从列表中获取 5 个随机值,您可以使用
values = random.choices(numbers, k=5)
接下来你必须将列表转换为一个字符串
new_text = ','.join(values)
最后你可以替换标签中的文本
label['text'] = new_text
并且您必须为按钮分配功能
command=losowanie
<小时/>
import csv
import random
import tkinter as tk
# --- functions ---
def losowanie():
values = random.choices(numbers, k=5)
new_text = ','.join(values)
label['text'] = new_text
# --- main ---
with open('test.csv') as csv_plik:
csv_reader = csv.reader(csv_plik, delimiter=',')
numbers = []
for row in csv_reader:
number = row[0]
numbers.append(number)
main = tk.Tk()
button = tk.Button(main, text='Losuj', command=losowanie)
button.pack()
label = tk.Label(main, text='losowanie')
label.pack()
main.mainloop()
关于python - 如何在返回列表项的标签中显示函数的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58744164/