将图像添加到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_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,(100,100)):
    canvas.create_text(i,j,text="*",anchor='nw')

root.mainloop()

我刚刚随机选择了一些放置*的位置,您可以将它们放置在任意位置。将示例中的i和j替换为所需的位置。

之后,您可以添加图像;我建议您查看PIL如何做到这一点。另外,看到您还没走这么远,也许还可以阅读tkinter的canvas工具。您可以在喜欢的搜索引擎中输入“ pythong tkinter canvas”来学习各种知识。

正如我所说,还有其他方法可以在tkinter窗口中放置文本。最值得注意的是,您可以使用文本小部件或某些标签小部件。可能我建议您开始阅读http://effbot.org/tkinterbook/,然后看看您可以学到什么。