使用Tkinter / Tcl设置窗口样式:没有退出按钮

我知道Tkinter只是Tcl / Tk的薄层. Tkinter你可以做一些事情来改变windows造型.一个例子是root.attributes(‘ – toolwindow’,True).这会将窗口样式更改为工具窗口的样式.但是,我希望降低一点.

我怀疑在某些时候Tcl / Tk会引用Windows window styles.我很确定它必须这样做才能设置窗口样式和扩展Tkinter窗口样式.我正在尝试给出一个Tkinter窗口,我非常确定它是WS_DLGFRAME样式.但是,我不确定如何处理这个问题.

我想知道Tkinter的Tcl / Tk部分在哪里分配窗口样式,以及为了获得这种样式我必须添加的内容.

最终目标是获得一个类似下面的Tkinter窗口边框样式(注意它缺少一个退出按钮):

这是在Windows 7,BTW中.

解决方法:

如果您熟悉C,请下载Tk source code.

我看得很快,在这个文件中:
./win/tkWinWm.c在第3072行(tk859-src.zip),你有函数static int WmAttributesCmd(),正如你所说的那样处理-toolwindow,稍后由UpdateWrapper()更新.

所以没有简单的方法来改变它,除非你改变Tk源代码.

或者,您可以使用FindWindow并查找Tk的窗口类TK_WIN_CHILD_CLASS_NAME定义为TkChild,然后使用SetWindowLongPtr(GWLP_STYLE,…)来更改样式(但这需要对C或其他方法进行一些ffi调用).

我自己对Tcl / Tk都不熟悉,所以请一点儿吃.为什么不试试Tcl / Tk社区?

上一篇:vpdn详细说明


下一篇:我的这10年——从机械绘图 到 炼油 到 微软MVP 的华丽转身