我正在尝试使用tkinter创建一个材质设计风格的GUI,就像这样(取自LOOT mod organizer thingy):
目前,我有一个框架作为灰色背景和另一个白色框架将保留我的内容,我的目的是为这个白色框架添加一个阴影,因为没有标准的浮雕选项接近。这可能吗?
到目前为止,我已经尝试将我的白色框架放在带有阴影图像的画布中,但我无法在任何接近我想要的位置放置图像或调整尺寸。
有趣的是,OptionMenu
窗口小部件的下拉确实有一个阴影:
虽然我不确定这是由于tkinter还是因为Windows
答案 0 :(得分:1)
我在打包小部件时利用了padx
和pady
选项创建了一个解决方案。效果并不完全是您所说的,但您可能想尝试其他选项组合。
import tkinter as tk
class MDLabel(tk.Frame):
def __init__(self, parent=None, **options):
tk.Frame.__init__(self, parent, bg=options["sc"]) # sc = shadow color
self.label = tk.Label(self, text=options["text"], padx=15, pady=10)
self.label.pack(expand=1, fill="both", padx=(0, options["si"]), pady=(0, options["si"])) # shadow intensity
root = tk.Tk()
root.geometry("600x300+900+200")
main_frame = tk.Frame(root, bg="white")
body_frame = tk.Frame(main_frame)
for i in range(3):
md_label = MDLabel(body_frame, sc="grey", si=1, text="Label " + str(i))
md_label.pack(expand=1, fill="both", pady=5)
body_frame.pack(expand=1, fill="both", pady=5, padx=5)
main_frame.pack(expand=True, fill="both")
root.mainloop()
这就是结果(在Mac OS X,Sierra上):