python 如何在框架上制作背景图片
How to make a background image on frame in python
我有一个问题,我想将图像作为这个小转换器的背景,有人可以帮助我吗?我在网上和 Whosebug 上查找,但我发现 none 的东西可以与 class.
一起使用
__author__ = 'apcs'
from tkinter import *
class FarenheitToCelsius(Frame):
def __init__(self):
Frame.__init__(self)
self.master.title("Farenheit To Celsius Conversion")
self.grid()
self.farenheitLabel = Label(self, text="Farenheit")
self.farenheitLabel.grid(row=0, column=0)
self.farVar = DoubleVar()
self.farEntry = Entry(self, textvariable=self.farVar)
self.farEntry.grid(row=0, column=1)
self.celsiusLabel = Label(self, text="Celsius")
self.celsiusLabel.grid(row=1, column=0)
self.celVar = DoubleVar()
self.celEntry = Entry(self, textvariable=self.celVar)
self.celEntry.grid(row=1, column=1)
self.button = Button(self,
text="Convert to Celsius",
command=self.convertToFarenheit)
self.button2 = Button(self,
text="Convert to Farenheit",
command=self.convertToCelsius)
self.button.grid(row=2, column=1, columnspan=1)
self.button2.grid(row=2, column=0, columnspan=1)
def convertToFarenheit(self):
fare = self.farVar.get()
cels = (fare - 32) * 5 / 9
self.celVar.set(cels)
def convertToCelsius(self):
cel = self.celVar.get()
far = cel * 9 / 5 + 32
self.farVar.set(far)
def main():
FarenheitToCelsius().mainloop()
main()
我至少可以想到三种方法:
在标签中创建图像,并使用place
将其放入框架中。然后创建所有其他小部件并像往常一样使用 pack
或 grid
。确保先创建框架,然后是带有图像的标签,然后是框架的 children,以便堆叠顺序正确。
使用canvas代替frame,使用create_image方式添加图片。然后就可以pack/place/grid children 正常了
不使用框架,而是使用标签作为容器,然后将 pack/place/grid 小部件放入标签中(是的,您可以将 children 添加到标签小部件中)。
我有一个问题,我想将图像作为这个小转换器的背景,有人可以帮助我吗?我在网上和 Whosebug 上查找,但我发现 none 的东西可以与 class.
一起使用__author__ = 'apcs'
from tkinter import *
class FarenheitToCelsius(Frame):
def __init__(self):
Frame.__init__(self)
self.master.title("Farenheit To Celsius Conversion")
self.grid()
self.farenheitLabel = Label(self, text="Farenheit")
self.farenheitLabel.grid(row=0, column=0)
self.farVar = DoubleVar()
self.farEntry = Entry(self, textvariable=self.farVar)
self.farEntry.grid(row=0, column=1)
self.celsiusLabel = Label(self, text="Celsius")
self.celsiusLabel.grid(row=1, column=0)
self.celVar = DoubleVar()
self.celEntry = Entry(self, textvariable=self.celVar)
self.celEntry.grid(row=1, column=1)
self.button = Button(self,
text="Convert to Celsius",
command=self.convertToFarenheit)
self.button2 = Button(self,
text="Convert to Farenheit",
command=self.convertToCelsius)
self.button.grid(row=2, column=1, columnspan=1)
self.button2.grid(row=2, column=0, columnspan=1)
def convertToFarenheit(self):
fare = self.farVar.get()
cels = (fare - 32) * 5 / 9
self.celVar.set(cels)
def convertToCelsius(self):
cel = self.celVar.get()
far = cel * 9 / 5 + 32
self.farVar.set(far)
def main():
FarenheitToCelsius().mainloop()
main()
我至少可以想到三种方法:
在标签中创建图像,并使用
place
将其放入框架中。然后创建所有其他小部件并像往常一样使用pack
或grid
。确保先创建框架,然后是带有图像的标签,然后是框架的 children,以便堆叠顺序正确。使用canvas代替frame,使用create_image方式添加图片。然后就可以pack/place/grid children 正常了
不使用框架,而是使用标签作为容器,然后将 pack/place/grid 小部件放入标签中(是的,您可以将 children 添加到标签小部件中)。