Проблема с координатами на холсте с полосой прокрутки - PullRequest
0 голосов
/ 11 декабря 2018

Я хочу создать фоновое изображение и привести определенные статьи к определенным координатам.Затем я распечатаю страницы той страницы, где я хочу распечатать.Но на первом этапе возникает проблема.

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 в Аккре.(Размер А4 - 595 х 842 пикселя).Я могу использовать два метода для будущих статей.

Строка 43: Label(inside, image = ft_img).pack ()

Когда я использую метку, я получаю фоновое изображение, но не могу отображать посты впетля.(Статьи, которые нужно перетащить и переместить позже)

Строка 42: canv.create_image(1, 1, image = ft_img, anchor = "nw")

Если я использую create_image, статьи возвращаются на базу, как я хочу, но холст теряет своюстатус пикселя.Например, 675 пикселей на нижнем краю страницы, когда я снова прокручиваю вниз полосу прокрутки, дает значение 675.(Вы можете проверить это, щелкнув правой кнопкой мыши в любом месте страницы). Поэтому я не могу переместить элементы в нужные места.

Наконец, я разрабатываю программу оформления счетов.Для печати необходим текст в соответствующих местах любой печатной бумаги.Мне удалось переместить записи, но я не смог решить эту проблему в течение недели.Я буду очень рад, если у меня возникнет какая-либо идея.

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...