【发布时间】:2020-09-19 08:33:50
【问题描述】:
我试图在画布上添加大量文本,我希望它们垂直向下。但是文字太多,要不断添加w.create_text(),每次都替换位置和文字,这需要很长时间。有没有更简单的方法,我可以将原始文件中的文本复制并粘贴到我的代码中并正确定位?
这是我正在使用的代码:
from tkinter import *
from functools import partial
import tkinter as tk
def validateLogin(password):
print(password.get())
if password.get() == "test":
master = Tk()
canvas_width = 1920
canvas_height = 1080
w = Canvas(master, width=canvas_width, height=canvas_height)
w.create_text(20, 20, text="Hi23")
w.create_text(20, 40, text="Hi41")
w.create_text(20, 60, text="Hi51")
w.create_text(20, 80, text="Hi61")
w.create_text(20, 100, text="Hi")
w.create_text(20, 120, text="Hi71")
w.create_text(20, 140, text="Hi7")
w.create_text(20, 160, text="Hi1")
w.create_text(20, 180, text="Hi2")
w.create_text(20, 200, text="Hi9")
w.create_text(20, 220, text="Hi8")
w.create_text(20, 240, text="Hi3")
w.create_text(20, 260, text="Hi2")
w.create_text(20, 280, text="Hi2")
w.pack()
tkWindow.destroy()
mainloop()
if password.get() != "test":
Label(tkWindow, text="Wrong password!", fg='red').grid(row=5, column=2)
# window
tkWindow = Tk()
tkWindow.geometry('250x100')
tkWindow.title('Passwords')
# password label and password entry box
Label(tkWindow, text="Password").grid(row=1, column=0)
password = StringVar()
Entry(tkWindow, textvariable=password,
show='*').grid(row=1, column=2)
validateLogin = partial(validateLogin, password)
# login button
Button(tkWindow, text="Login",
command=validateLogin).grid(row=4, column=2)
tkWindow.mainloop()
(我以“嗨”为例)
单词列表:
words = ["AxsorVayne", "XayahMainz", "axsor123", "AxsorLee", "Axssor", "MSFZed123", "axsor111", "Axsor123", "AxsorAshe", "axsor112", "Axsorr1233", "axsor667", "snqw", "1593", "roxxstar", "Warz", "Valsmurf", "12.august", "PBE", "League Of legends", "OSU", "Axsor", "DAUNTLESS", "EPIC GAMES", "TAPPED OUT", "Mega", "Ups", "Unity", "SpMEO"]
【问题讨论】:
-
也许循环通过它?
-
@CoolCloud 我不认为我可以循环浏览它,因为文本会有所不同。我仍然需要一个一个地替换文本。
-
列出所有文本?然后遍历该列表?
-
@CoolCloud 我添加了我需要添加的单词列表
标签: python tkinter canvas text