【问题标题】:Python/Tkinter - Add background to root window [duplicate]Python / Tkinter - 为根窗口添加背景[重复]
【发布时间】:2021-03-20 01:21:08
【问题描述】:

请原谅我的菜鸟,因为我刚开始学习 Python。我目前正在使用 Tkinter 库做一个非常简单的 GUI。它基本上是顶部的一个 LabelFrame,里面有一些其他小部件,底部是一个 Treeview,用于显示一些数据。

运行代码时可以看到,(还不能在我的帖子中添加图片),主根窗口的背景设置为“CyanBlue”。

我怎样才能让它有一个图像而不是颜色,主窗口上的所有小部件都重叠在它上面?

我附上一些代码供参考。 非常感谢您。

from tkinter import *
from tkinter import ttk
import tkcalendar

window = Tk() 
wind = window  
#HERE I SET THE BG /// WANT AN IMAGE INSTEAD OF COLOR 
wind.config(bg = 'LightCyan2')

#Create a LabelFrame 
frame = LabelFrame(wind)
frame.grid(row = 0,column = 0, columnspan = 7, pady = 20, padx = 20)

#Date FROM input 
Label(frame, text = "From Date: ", font = "Cambria 12 bold" ).grid(row = 1, column = 0, padx = 10 
,sticky = "e")
datefrom = tkcalendar.DateEntry(frame, locale = 'en_US', date_pattern ="yyyy-mm-dd")
datefrom.grid(row = 1, column = 1, columnspan = 6, padx = (0,20),pady = 5, sticky = W+E)

#Button add product 
b = Button(frame, text = 'Consult Database', font ="Bahnschrift 12 bold",height = 2 ,width = 5, bg = 
'DarkOliveGreen1')
b.grid(row = 7, columnspan = 7, padx = 10, pady = 5,sticky = W + E)

####TREEVIEW
tree = ttk.Treeview(selectmode = "extended", height = 10 , columns = ('#1','#2','#3','#4')) #Colum #0 
is always implied/ its the column icon/ the one that later becomes the Label Text 
tree.grid(row = 8, column = 0, columnspan = 4)

window.mainloop()   

【问题讨论】:

  • 不完全是,我无法使用针对该问题的建议解决方案来解决我的问题...
  • 不确定,但你可以创建一个画布,然后在画布中放置一个图像作为背景,然后在画布中 create_window() 并在画布中制作小部件。

标签: python image user-interface tkinter background


【解决方案1】:

我目前正在自己​​研究 tkinter 的东西,我对它也很陌生,但我认为你可以使用 .grid() 函数。

图像被放入 tkinter 中的小部件中。因此,您不必设置bg = image 或类似的设置,而是必须创建一个包含图像的小部件。这里有一个指南:https://www.c-sharpcorner.com/blogs/basics-for-displaying-image-in-tkinter-python

然后你使用 .grid() 来放置图像。您可能会发现网格的 rowspan 和 colspan 属性有助于解释该图像需要填充整个窗口。

然后,在背景到位后,您可以 grid() 顶部的新按钮。

因此,图像顶部两个按钮的代码可能如下所示:

background_img.grid(row = 0, column = 0, colspan = 2)
left_button.grid(row = 0, column = 0)
right_button.grid(row = 0, column = 1)

【讨论】:

    猜你喜欢
    • 2011-10-13
    • 2021-11-20
    • 2023-02-11
    • 1970-01-01
    • 1970-01-01
    • 2017-10-14
    • 2022-01-24
    • 1970-01-01
    相关资源
    最近更新 更多