tkinter窗口的overrideredirect方法

2019年10月8日 / 18次阅读 / Last Modified 2019年10月9日
tkinter

从此函数的名称上,真是看不出overrideredirect是干什么用的,python官方的help信息是这样说的:

Help on method wm_overrideredirect in module tkinter:
wm_overrideredirect(boolean=None) method of tkinter.Tk instance
Instruct the window manager to ignore this widget
if BOOLEAN is given with 1. Return the current value if None
is given.

翻译过来就是,如果参数为1,就让window manager去略这个窗体控件;如果参数为None,就返回此窗体控件当前的这个overrideredirect状态。

经过测试发现,此函数只在Window系统平台下有效,在Ubuntu桌面下无效(函数可以正常运行,但是没有实际效果)。

在Windows平台下,这个函数的作用,视觉上窗体整个边框消失(没有最小化最大化关闭这几个按钮,也无法拖动这个窗体),程序的窗体在Windows系统任务栏上也消失(看不到有这么一个程序在运行),但是Alt+F4关闭窗体的功能还存在。

我们来做个测试:

>>> import tkinter as tk
>>> root = tk.Tk()
>>> tk.Label(root, text='test', font=('',64)).pack()

创建root,放一个Label,Label上的字体大小为64,看着方便,这时窗体的样子是这样的:

正常的tkinter窗体
正常的tkinter窗体

现在我们加上overrideredirect的效果:

>>> root.overrideredirect(1)
>>> root.overrideredirect(0)
>>> a = root.overrideredirect(None)
>>> a
>>> a = root.overrideredirect(1)
>>> a
>>> a = root.overrideredirect(None)
>>> a
True

连续调用了多次overrideredirect函数,当参数为1时,窗体的就变成了这样的:

overrideredirect的效果
overrideredirect的效果

整个周围一圈都消失了,只剩下里面的test这个Label。这就是overrideredirect函数的作用,并且只有在Windows系统下才有效果。

-- EOF --

本文链接:https://www.pynote.net/archives/1276

留言区

电子邮件地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top