tcl/tk窗口管理器

窗口尺寸:

设置窗口的宽高:

wm geometry .window 300x200

恢复窗口到其自然尺寸:

wm geometry .window {}

设置窗口最大最小尺寸

wm minsize .window 100 50

wm maxsize .window 400 150

宽度范围100~400像素,高度范围50~150像素

 

设置窗口是否尺寸可调:

wm resizable .window 0 1

0 :尺寸不可调   1:尺寸可调

 

限制宽高比范围:

wm aspect .window 1 3 4 1

告诉窗口管理器不允许用户将窗口的宽高比设置为小于1/3或大于4。

 

窗口位置:

设置窗口相对显示器的位置:

wm geometry .window 100x200+300+400

设置宽高为100x200,窗口左上角相对为显示器上坐标为(300,400)的店。如果两个‘+’的任何一个改成‘-’,则相对显示器的右下角开始。

 

窗口状态:

命令wm withdraw .window将一个窗口至于关闭状态。如果在窗口显示在屏幕上之前调用了该命令,窗口便会从关闭状态开始。这条命令最常见的用途是组织一个用程序的主窗口显示在屏幕上(在一些应用程序中中,主窗口没有任何作用,用户界面是由顶层窗口给出的)。一旦窗口退出,他可以用wm deiconify 或wm iconify返回屏幕。

图标化窗口:

wm iconify .window

查询窗口的状态;

wm state .window

=>iconic

 

装饰:

设置窗口标题:

wm title .window "you window title"

 

设置窗口图标:

wm iconbitmap . -defualt $iconpath
设定所有的窗口图标都为 $iconpath所指定的图标。


wm iconbitmap . $iconpath
只设定当前窗口图标为 $iconpath所指定的图标。

一般 $iconpath 只支持.ico格式的图像。

 

针对系统的窗口属性:

wm attributes window ?attribute? ?value attribute value ...?

 

设置窗口最大化:

-fullscreen boolean

例如:

wm attributes .window -fullscreen true

wm attributes .window -fullscreen false

设置窗口总是在最前端:

-topmost boolean

控制窗口的透明度:

-alpha number

其中alpha范围为0.0(透明)到1.0(不透明)

设置为无效状态:

-disabled boolean

设置工具窗口样式:

-toolwindow boolean

指定透明色:

-transparentcolor -color

如果指定为空字符串(默认),则不使用任何透明色。

 

关闭窗口:

destroy .window

或者在用户按下框架上的关闭按钮时,由窗口管理器来关闭。可以用wm protocol截获关闭命令。相当于产生一个窗口关闭事件,由wm protocol截获进行处理。

例如:

wm protocol .window WM_DELETE_WINDOW {

    set response [tk_messageBox -type yesno -message "Really quit?"]

    if {$response eq "yes"} {

        destroy .window

    }

}

上述代码在窗口管理器关闭窗口时调用,弹出确认窗口,如下


如果点击“是”,命令返回字符串“yes”(否则返回“no”),则关闭窗口。

注意,destroy .window 命令直接关闭窗口,不会传递给窗口管理器处理,因此不会重复触发上述命令。

原文地址:https://www.cnblogs.com/kane1990/p/2293979.html