• 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 命令直接关闭窗口,不会传递给窗口管理器处理,因此不会重复触发上述命令。

  • 相关阅读:
    TOJ 2710: 过河 路径压缩
    树状数组模板
    TOJ 2017: N-Credible Mazes
    TOJ 4804: 树网的核
    Codeforces Round #440 (Div. 2, based on Technocup 2018 Elimination Round 2)
    Codeforces Round #441 (Div. 2, by Moscow Team Olympiad)
    TOJ 2541: Paper Cutting
    CODE FESTIVAL 2017 qual B
    hiho[Offer收割]编程练习赛30
    Codeforces Round #437 (Div. 2, based on MemSQL Start[c]UP 3.0
  • 原文地址:https://www.cnblogs.com/kane1990/p/2293979.html
Copyright © 2020-2023  润新知