带有滚动条的画布中的坐标问题

时间:2018-12-11 19:32:01

标签: python-3.x tkinter

我想创建背景图像,并将某些文章置于特定的坐标。然后,我将打印要打印的页面中的页面。但是在第一阶段就存在问题。

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的值。 (您可以通过右键单击页面上的任意位置来进行测试),因此,我无法将项目移动到所需位置。

最后,我设计了一个发票设计程序。在任何打印纸的适当位置打印所需的文本。我设法移动了著作,但是一周来我一直无法解决这个问题。如果有什么主意我会很高兴。

谢谢。

0 个答案:

没有答案