Добавление прозрачности в виджет - Tkinter - PullRequest
0 голосов
/ 24 сентября 2018

Итак, у меня есть простое окно tkinter, которое создает простой градиент с использованием холста.Проблема, с которой я столкнулся, заключается в том, что всякий раз, когда виджеты помещаются в окно, появляется их фон.Я пробовал возиться с атрибутами окна, но безуспешно.Любые идеи будут с благодарностью

import tkinter as tk 

root = tk.Tk()
full_width, full_height = (root.winfo_screenwidth()), (root.winfo_screenheight())

def Startup(): #Gradient Left to right
    root.overrideredirect(True)
    root.lift()
    root.geometry('%dx%d+0+0' % (full_width,full_height))
    colour1 = "#d785a5"
    colour2 = "#6b3d8f"
    width = root.winfo_screenwidth()
    height = root.winfo_screenheight()
    (r1,g1,b1) = root.winfo_rgb(colour1)
    (r2,g2,b2) = root.winfo_rgb(colour2)
    r_ratio = float(r2-r1) / full_width
    g_ratio = float(g2-g1) / full_width
    b_ratio = float(b2-b1) / full_width
    c = tk.Canvas(root, width = full_width, height = full_height)
    c.pack(side = tk.TOP, expand = True, fill = "both")
    c.update()
    for i in range(full_width):
        nr = int(r1 + (r_ratio * i))
        ng = int(g1 + (g_ratio * i))
        nb = int(b1 + (b_ratio * i))
        colour = "#%4.4x%4.4x%4.4x" % (nr,ng,nb)
        c.create_line(i, 0, i, full_height, fill = colour)
    root.option_add("*Font", "Helvetica")
    tk.Label(c, font=("Colonna MT", round(full_height/10)),text="Log in").pack()
    tk.Label(c,text="").pack()
    tk.Label(c,text="Username").pack()
    tk.Label(c,text="").pack()
    t = tk.Entry(c)
    t.pack()
    tk.Label(c,text="").pack()
    tk.Label(c,text="Password").pack()
    tk.Label(c,text="").pack()
    t2 = tk.Entry(c, show='*')
    t2.pack()
    tk.Label(c,text="").pack()
    tk.Button(c, text='Login', command= lambda:retrieve_input(t,t2)).pack() 

Startup()
...