使tkinter窗口绘制在全屏应用程序的顶部

3

我在想是否有办法在全屏应用程序上绘制tkinter窗口,到目前为止我只有这个:

from tkinter import *

#MAIN WINDOW
root = Tk()
root.title('Test Title')
root.geometry("500x200")
root.wm_attributes('-transparentcolor', root['bg'])
root.wm_attributes("-topmost", 1)


my_frame = Frame(root, width=500, height=200)
my_frame.pack(pady=20, ipady=20, ipadx=20)

#STAT TEXT
my_label = Label(my_frame, font=("Helvetica", 40), fg="#09d2f6")
my_label.config(text="TEST TEXT")
my_label.pack(pady=20)


root.mainloop()

这会将窗口置于所有应用程序之上,但不包括全屏的应用程序。我想要一个循环,它将不断地将窗口向前移动,但我不知道该如何实现。


你可以尝试使用tkinter的after()小部件方法,以重复调度对执行root.wm_attributes("-topmost", 1)函数的调用。 - martineau
问题出在你提到的全屏窗口上,它必须被设置为“-topmost”,而不仅仅是“fullscreen”。我将发布一个全屏背景和你的代码一起运行的示例 - 没有问题。 - Derek
1个回答

1
这段代码将使您能够选择要在全屏上查看的图片。
您的代码将以透明模式运行在其上方 - 没有问题
按Escape键退出
尝试使用标题按钮使您的小部件全屏,并获得奇怪的效果!
由于filedialog对结果的影响,不得不进行编辑。
将属性设置移动到加载图像后再调用。
import os
import tkinter as tk
from tkinter import filedialog

def closer( ev ):
    ev.widget.destroy()

# FULL SCREEN
master = tk.Tk()
master.rowconfigure( 0, weight = 1 )
master.columnconfigure( 0, weight = 1 )

master.bind( "<Escape>", closer )

pathfile = filedialog.askopenfilename( title = 'pick mage' )

my_image = tk.PhotoImage( file = pathfile ).zoom( 2,2 )
label = tk.Label( master, text = 'Image', compound = "top", image = my_image )
label.grid(row=0, column=0,sticky='nsew')

master.wm_attributes("-fullscreen", 1)
# removed for first time use - unrem this for second time
# master.wm_attributes("-topmost", 1)

# Your code

root = tk.Toplevel(master)
root.title('Test Title')
root.geometry("500x200")

root.bind( "<Escape>", closer )

root.wm_attributes('-transparentcolor', root['bg'])
root.wm_attributes("-topmost", 1)

my_frame = tk.Frame(root, width=500, height=200)
my_frame.pack(pady=20, ipady=20, ipadx=20)

#STAT TEXT
my_label = tk.Label(my_frame, font=("Helvetica", 40), fg="#09d2f6")
my_label.config(text="TEST TEXT")
my_label.pack(pady=20)

master.mainloop()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接