如何在Tkinter中获得这样的窗口边框?

0 投票
2 回答
1875 浏览
提问于 2025-04-16 01:36

有没有办法在Tkinter中做出这样的边框?注意到右上角没有按钮的部分。另外,我也不想让这个程序在任务栏上显示。

alt text

顺便说一下,这是在Windows 7上。

2 个回答

1

WS_DLGFRAME这个窗口样式可以让你创建一个没有标题栏的窗口,而WS_EX_TOOLWINDOW通常也会用在这样的窗口上,这样它就不会出现在任务栏里(或者像Vista之前的控制面板对话框那样,隐藏了父窗口)。你可以使用像Spy++(Visual Studio自带的工具)或者WinSpy++这样的工具来查看具体的窗口样式。

2

Tk(也就是Tkinter)有一个命令可以去掉所有窗口管理器的装饰。这个命令在tkinter里叫做“wm_overrideredirect”,它是用在顶层窗口上的。你只需要给它传一个True的参数,就可以去掉窗口的装饰。这样你就可以自己画边框,通常是通过在整个窗口上放一个画布,然后在画布上进行绘制。

不过,当我在我的Mac上试这个的时候,窗口虽然显示正常,但无法获得焦点。可能这是Tkinter的一个bug。我在Tcl中用相同的代码没有遇到这个问题。

撰写回答