Tkinter - 透明标签?

时间:2021-02-13 17:24:00

标签: python tkinter

我正在制作一个 tkinter 程序,它将使用我创建的七段字体计算和显示一个数字。我想要实现的是当一个段没有被使用时,而不是它不显示,我想要它的颜色更深。示例是它看起来像:

7seg example

我创建了 2 种字体,7seg(普通字体)和 7seg 倒置(未使用的段显示为较深的颜色),并希望将 2 重叠在一起,顶部图像上的 bg 是透明的。我尝试使用 wm_attributes 但这使整个事情变得透明,而不仅仅是顶部标签。我不确定这是否可能...

关于这部分的代码是:

segment_invert = Label(tab2, text = "888", font = ("7Seg_invert", 150), fg = "#800000",
                       bg = "black")
segment_invert.place(x = 20, y = 30)

segment = Label(tab2, text = "888", font = ("7 Segment none just", 150), fg = "red")
segment.place(x = 20, y = 30)

基本上我希望顶部的 Label 被看穿,并且只显示未使用的部分,显示下面使用的部分。

这是目前的样子:

current image

1 个答案:

答案 0 :(得分:0)

谢谢,将它创建为画布正是我想要的

    import tkinter
from tkinter import ttk, Button, NORMAL, DISABLED, W, LabelFrame, Frame, Label, font, Canvas, Entry

main = tkinter.Tk()

std_size_w, std_size_h = "800","500"
main.geometry(f"{std_size_w}x{std_size_h}")
main.minsize(width = (int(std_size_w)), height = ((int(std_size_h))-300))


# Tabs
tab_setup = ttk.Notebook(main)

# Tab 1 Serial
tab1 = LabelFrame(tab_setup, text = "Setup Serial")
tab_setup.add(tab1, text = "Serial Setup")

tab2 = LabelFrame(tab_setup)
tab_setup.add(tab2, text = "Azkoyne Hopper U")

tab_setup.pack(expand=1, fill = "both", padx = 10, pady = 10)


canvas1 = Canvas(tab2, width = 400, height = 200, bg = "black") 
canvas1.pack()


canvas1.create_text(200, 100, text = "888", font = ("7 Segment none just", 150), fill = "#4d0000")
canvas1.create_text(200, 100, text = "000", font = ("7 Segment none just", 150), fill = "red")



main.mainloop()

此处的屏幕截图working image

相关问题