почему Wish открывает два окна вместо одного?

В Tcl/Tk источник файла /usr/bin/wan27

#! /usr/bin/wish -f
set w .main
toplevel $w
wm title $w "FOO"

при вводе команды «wan27» из терминала (Linux/Debian/Ubuntu 10.04) открывается два окна, одно с заголовком wan27, а другое с заголовком FOO. Я просто хочу открыть окно FOO. Как я могу это выполнить?

Спасибо


person fabjoa    schedule 21.11.2010    source источник


Ответы (4)


Используйте следующее:

#! /usr/bin/wish -f
wm title . "FOO"
person Drakosha    schedule 21.11.2010
comment
круто, я на самом деле наткнулся на блог, объясняющий путь к виджету, так вот как получить доступ к текущему окну! TX! - person fabjoa; 21.11.2010
comment
@fabjoa: дело не в том, как получить доступ к текущему окну, а в том, как получить доступ к окну по умолчанию. Нет реального понятия текущего окна, за исключением, возможно, того, какое окно имеет фокус. - person Bryan Oakley; 21.11.2010
comment
@Bryan: Ну, есть также окно захвата и окно с указателем мыши над ним. Но вы правы, настоящего «текущего» окна не существует; Графические интерфейсы так не работают (именно поэтому большинству людей сложно их кодировать). - person Donal Fellows; 22.11.2010

Ответ заключается в том, что Wish всегда создает окно с именем «.». Итак, одно окно. Затем вы создаете второе окно с помощью команды toplevel, так что теперь у вас их два.

person Bryan Oakley    schedule 21.11.2010
comment
теперь я понял! желание, автоматически открывает окно при вызове. все становится яснее с ticle poco a poco! Спасибо, Брайан! - person fabjoa; 22.11.2010

Вы также можете использовать:

wm state . withdrawn
person Roman Kaganovich    schedule 06.03.2012

Если вы хотите игнорировать ., вы можете просто скрыть его: wm iconify .

person glenn jackman    schedule 22.11.2010