簡體   English   中英

我的圖像沒有縮放到正確的像素

[英]My image doesnt scale to its right pixel

要尋求幫助,因為這讓我現在瘋了。 背景圖片似乎不適合我的窗口大小。 看不到我的代碼中缺少的內容。 我嘗試過更改一些x和y以及其他參數,也嘗試過搜索,但仍然無法正常工作。 謝謝!

import Tkinter as tk
from Tkinter import *
import ttk
from PIL import Image, ImageTk


def callback():
    mainmenu.deiconify


def genkeymenu():

    mainmenu.withdraw()
    generatemenu = tk.Toplevel(mainmenu)

    bg1 = ImageTk.PhotoImage(file="key2.jpg")
    background_label = ttk.Label(generatemenu, image=bg1)
    background_label.place(x=0, y=0, relwidth=1, relheight=1)
    background_label.image = bg1

    keynamelabel = ttk.Label(generatemenu, text="Enter your key name")

    keynameEntry = ttk.Entry(generatemenu)

    keynameButton = ttk.Button(generatemenu, text="Enter")


    check1024= Checkbutton(generatemenu, text="1024 bit")
    check2048= Checkbutton(generatemenu, text="2048 bit")
    check4096= Checkbutton(generatemenu, text="4096 bit")

    background_label.pack()

    keynamelabel.pack()
    keynameEntry.pack()
    keynameButton.pack()

    check1024.pack()
    check2048.pack()
    check4096.pack()

    generatemenu.title("Generate Key")
    ttk.eval('tk::PlaceWindow %s center' % generatemenu.winfo_pathname(generatemenu.winfo_id()))
    generatemenu.mainloop()

class Buttons:
    def __init__(self, buttons):
        self.buttons = buttons
        self.genkeybutton = Button(buttons, text= "Generate Key Pair", fg="black", command=genkeymenu)
        self.id = buttons.create_window(50, 100, width=0, height=0,window=self.genkeybutton)

mainmenu = tk.Tk()
mainmenu.minsize(width=600, height=400)

imgpath = "key.jpg"
img=Image.open(imgpath)
img=img.resize((600,400), Image.ANTIALIAS)
photo = ImageTk.PhotoImage(img)


buttons = tk.Canvas(mainmenu)
buttons.pack()
buttons.create_image(0, 0, image=photo)
Buttons(buttons)

mainmenu.title("RSA ENCRYPTION")
#mainmenu.wm_attributes('-type', 'splash')
#mainmenu.eval('tk::PlaceWindow %s center' % 
mainmenu.winfo_pathname(mainmenu.winfo_id()))
mainmenu.mainloop()

這是我有問題的代碼部分:

class Buttons:
    def __init__(self, buttons):
        self.buttons = buttons
        self.genkeybutton = Button(buttons, text= "Generate Key Pair", fg="black", command=genkeymenu)
        self.id = buttons.create_window(50, 100, width=0, height=0,window=self.genkeybutton)

mainmenu = tk.Tk()
mainmenu.minsize(width=600, height=400)

imgpath = "key.jpg"
img=Image.open(imgpath)
img=img.resize((600,400), Image.ANTIALIAS)
photo = ImageTk.PhotoImage(img)


buttons = tk.Canvas(mainmenu)
buttons.pack()
buttons.create_image(0, 0, image=photo)
Buttons(buttons)

mainmenu.title("RSA ENCRYPTION")
#mainmenu.wm_attributes('-type', 'splash')
#mainmenu.eval('tk::PlaceWindow %s center' % 
mainmenu.winfo_pathname(mainmenu.winfo_id()))
mainmenu.mainloop()

這是問題的屏幕截圖:

這是問題的屏幕截圖

代替此:

imgpath = "key2.jpg"
img=Image.open(imgpath)
img=img.resize((600,400), Image.ANTIALIAS)
photo = ImageTk.PhotoImage(img) 

做這個 :

imgpath = PhotoImage(file="key2.jpg")
img = Label(mainmenu, image=imgpath)
img.place(x=0, y=0, relwidth=1, relheight=1)

它將覆蓋背景。然后對此進行評論,以查看正在談論的#buttons.create_image(0, 0, image=img)

最好還是在畫布上做圖像

buttons = tk.Canvas(mainmenu)
buttons.pack()
buttons.create_image(0, 0, image=imgpath)
Buttons(buttons)

完整代碼如下

import Tkinter as tk
from Tkinter import *
import ttk
from PIL import Image, ImageTk


def callback():
    mainmenu.deiconify


def genkeymenu():

    mainmenu.withdraw()
    generatemenu = tk.Toplevel(mainmenu)

    bg1 = ImageTk.PhotoImage(file="key2.jpg")
    background_label = ttk.Label(generatemenu, image=bg1)
    background_label.place(x=0, y=0, relwidth=1, relheight=1)
    background_label.image = bg1

    keynamelabel = ttk.Label(generatemenu, text="Enter your key name")

    keynameEntry = ttk.Entry(generatemenu)

    keynameButton = ttk.Button(generatemenu, text="Enter")


    check1024= Checkbutton(generatemenu, text="1024 bit")
    check2048= Checkbutton(generatemenu, text="2048 bit")
    check4096= Checkbutton(generatemenu, text="4096 bit")

    background_label.pack()

    keynamelabel.pack()
    keynameEntry.pack()
    keynameButton.pack()

    check1024.pack()
    check2048.pack()
    check4096.pack()

    generatemenu.title("Generate Key")
    ttk.eval('tk::PlaceWindow %s center' % 
    generatemenu.winfo_pathname(generatemenu.winfo_id()))
   generatemenu.mainloop()

class Buttons:
    def __init__(self, buttons):
        self.buttons = buttons
        self.genkeybutton = Button(buttons, text= "Generate Key Pair", fg="black", command=genkeymenu)
        self.id = buttons.create_window(50, 100, width=0, height=0,window=self.genkeybutton)

mainmenu = tk.Tk()
mainmenu.minsize(width=600, height=400)

imgpath = PhotoImage(file="key2.jpg")
img = Label(mainmenu, image=imgpath)
img.place(x=0, y=0, relwidth=1, relheight=1)

buttons = tk.Canvas(mainmenu)
buttons.pack()
buttons.create_image(0, 0, image=imgpath)
Buttons(buttons)

mainmenu.title("RSA ENCRYPTION")
#mainmenu.wm_attributes('-type', 'splash')
#mainmenu.eval('tk::PlaceWindow %s center' %
mainmenu.winfo_pathname(mainmenu.winfo_id())
mainmenu.mainloop()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM