[英]Add image to star pattern printing in python
如何在 GUI(Tkinter) 上打印它以便我可以将图像添加到其背景中,或者有没有其他方法可以将图像添加到该程序? 我试过在 Tkinter 上导入它,但不知道如何在那里打印
# List for the loop print star message
print_H=[[" " for i in range(6)]for j in range(6)]
print_A=[[" " for i in range(6)]for j in range(6)]
print_P=[[" " for i in range(6)]for j in range(6)]
print_Y=[[" " for i in range(6)]for j in range(6)]
# Loop for H "*" pattern
for r in range(6):
for c in range(6):
if c == 0 or c == 5 or (r == 3 and (c>0 and c <5)):
print_H[r][c]="*"
# Loop for A "*" pattern
for r in range(6):
for c in range(6):
if ((c == 0 or c==5) and r!=0) or (r==0 and(c>0 and c<5)) or (r==3 and(c>0 and c<5)) :
print_A[r][c]="*"
# Loop for P"*" pattern
for r in range(6):
for c in range(6):
if c==0 or (c==4 and (r==1 or r==2)) or ((r==0 or r==3) and (c>0 and c<4)) :
print_P[r][c]="*"
# Loop for Y "*" pattern
for r in range(6):
for c in range(6):
if (c==2 and r>1) or (r==c and c<2) or (r==0 and c==4) or (r==1 and c==3) :
print_Y[r][c]="*"
# This will print all star("*") in the message form
for i in range(6):
for j in range(6):
print(print_H[i][j],end=" ")
for j in range(6):
print(print_A[i][j],end=" ")
for j in range(6):
print(print_P[i][j],end=" ")
for j in range(6):
print(print_P[i][j],end=" ")
for j in range(6):
print(print_Y[i][j],end=" ")
print( )
所以,如果你想把键盘符号放在 tkinter 中,你有几个选项,这取决于你想用它们做什么。
首先,您需要将 tkinter 添加到您的程序并设置一个窗口:
import tkinter as tk
root = tk.Tk()
root.mainloop()
这样就可以了。 看到您想将图像添加到背景中,我建议使用画布来保存所有 * s。 以下将让您做到这一点:
import tkinter as tk
root = tk.Tk()
canvas = tk.Canvas(root)
canvas.pack()
for i, j in ((1,1),(10,10),(50,10),(100,1),(100,100)):
canvas.create_text(i, j, text="*", anchor='nw')
root.mainloop()
我只是随机挑选了一些放置 *s 的地方,你可以把它们放在任何你喜欢的地方。 将我示例中的 i 和 j 替换为您想要的位置。
之后,您可以添加图像; 我建议您查看 PIL 如何做到这一点。 此外,鉴于您还没有走到这一步,也许还可以阅读 tkinter 的画布工具。 你可以通过在你最喜欢的搜索引擎中输入“pythong tkinter canvas”来学习各种各样的东西。
正如我所说,还有其他方法可以将文本放入 tkinter 窗口中。 最值得注意的是,您可以使用文本小部件或一些标签小部件。 我是否建议您开始阅读http://effbot.org/tkinterbook/ ,看看您能学到什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.