我想创建背景图像,并将某些文章置于特定的坐标。然后,我将打印要打印的页面中的页面。但是在第一阶段就存在问题。
from tkinter import *
root = Tk()
root.geometry("595x682+100+0")
# --------- SCROOLBAR SETİ ----------
def update_layout():
inside.update_idletasks()
canv.configure(scrollregion=canv.bbox('all'))
canv.yview('moveto', '1.0')
size = inside.grid_size()
def on_configure(event):
w, h = event.width, event.height
natural = inside.winfo_reqwidth()
canv.itemconfigure('inner', width=w if w > natural else natural)
canv.configure(scrollregion=canv.bbox('all'))
canv = Canvas(root, bd=0, highlightthickness=0, bg="#eeeeee")
canv.pack(side=LEFT, expand=1, fill=BOTH, )
scrollbar = Scrollbar(root, orient='vertical', command=canv.yview)
scrollbar.pack(side=LEFT, fill='y')
inside = Frame(canv, bg="#fefeee")
inside.grid_columnconfigure(0, weight=1)
canv.create_window((0, 0), window=inside, anchor='nw', tags='inner')
canv.configure(yscrollcommand=scrollbar.set)
canv.bind('<Configure>', on_configure)
def right_click(event):
print("coor: ", event.x, event.y)
root.bind("<ButtonPress-3>", right_click)
ft_img = PhotoImage(file='Fatura.gif') # A4 size - 595 x 842 pixel
canv.create_image(1, 1, image=ft_img, anchor="nw") # 1) <---!!!!
#Label(inside, image=ft_img).pack() # 2) <---!!!!
sozluk = {}
item_no = 2
liste = ["İsim", "Adres", "VD", ""]
yazilar = ["Koç Tex", "Merter", "12345", "18.10.1998"]
yan = 100
for z in yazilar:
canv.create_text(100, yan, fill="darkblue", font="Arial 11",
text=z, tags="token", anchor='nw')
yan += 20
item_no += 1
mainloop()
我在阿克拉使用了A4尺寸纸张的图像。 (A4尺寸-595 x 842像素)。在以后的文章中,我可以使用两种方法。
第43行:Label(inside, image = ft_img).pack ()
使用标签时,会得到背景图像,但无法在for循环中显示帖子。 (待稍后拖动和移动的文章)
第42行:canv.create_image(1, 1, image = ft_img, anchor = "nw")
如果我使用create_image
,则文章会根据需要返回到最底端,但是画布将失去其像素状态。例如,页面底部边缘上的675px,当我再次向下滚动滚动条时会给出675的值。 (您可以通过右键单击页面上的任意位置来进行测试),因此,我无法将项目移动到所需位置。
最后,我设计了一个发票设计程序。在任何打印纸的适当位置打印所需的文本。我设法移动了著作,但是一周来我一直无法解决这个问题。如果有什么主意我会很高兴。
谢谢。