LINUX.ORG.RU

Ruby+TK-)или просто по Tk подскажите-)


0

0

Вообщем вопросы некоторые появились в ходе освоения-))и построения интерфейса-)) раньше работал с PHP -)так что здесь вообще как последний новичок себя чувствую-)сильно не пинайте за ламерские вопросы-)

1. Есть ли аналог тега SELECT -)то есть раскрывающийся список с возможностью выбора? 2. Задание размеров... в том числе главного окна-) пробовал geometry (применительно к Root) но видимо синтаксис не тот-( 3. Как повесить скроллбар на всё окно... грубо говоря сверху меню дальше общая часть которую и надо иногда скроллить-)) располагаю всё с помощью фремов и pack-)

Заранее спасибо-)

anonymous

Ответ на: комментарий от r_asian

Ты не понял-))я графический интерфейс делаю-)) Прога на Кгин, обычном руби(не rails)-) интерфейс с использованием Tcl/Tk делаю-)) вот по Tk как раз и вопросы по нему и есть-) тег Select Был приведён как пример выпадающего списка-)

anonymous
()

эта хрень ComboBox называется)

anonymous
()
Ответ на: комментарий от smh

> Почему бы не воспользоваться FxRuby?

А можно в двух словах чем лучше и что с переносимостью на разные платформы?

Cris
()

просто по Tk,
безотносительно ruby,но относительно tcl :)

1. Виджет menubutton и menu к нему
menubutton .button -text "One" -menu .button.m
menu .button.m -tearoff 0
.button.m add command -label "One" \
   -command [ list .button configure -text "One" ]
.button.m add command -label "Two" \
   -command [ list .button configure -text "Two" ]

2. Размер и положение окна задаётся командой wm
wm .top -geometry 100x100+20+20
но это работает только если window manager позволит :)

3. чтобы сделать скроллируемый фрейм, его надо расположить внутри виджета text или canvas. Конечно это не ахти как красиво и просто..

просто рекомендации : 
- не задавайте размеры виджетов и окон..пусть geometry manager ы поработают
- во многих случаях менеджер grid удобнее - тем более если вы с html переползаете
- указывайте аттрибут class для фреймов, и весь тюнинг дизайна делайте через ресурсы (команда option)

и будет вам щастье :)




MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

Спасибо за консультацию-)

Нда-)насчёт скроллинга примерно так и предполагал-))

В принципе со всем более менее разобрался из выше перечисленного но возник ещё один простой вопрос-)) реализация навигации-)) как обычно делается? грубо говоря выбрал пункт меню что то отобразилось ниже, выбрал другой предыдущее ушло в небытиё новоё появилось-)попробовал созданием уничтожением фреймов...но это некрасиво-)

Mraka
()
Ответ на: комментарий от smh

Да так получилось-))просто параллельно освоению надо небольшой проект быстренько сделать-))первое что посоветовали Tk -))про FxRuby недавно увидел-)сейчас разбираться уже некогда-)но потом обязательно освою-)

Mraka
()
Ответ на: комментарий от Mraka

> реализация навигации-)) как обычно делается? 

по разному
но как-то принято или делать навигацию с tab`ами, или с отдельными окнами :) tab`ы можно брать из incr`tcl или из Megawidget`s, 
но если глянуть глубжее - это всё фреймы которые то прячут, то показывают обратно, так что можно и самому сделать и заодно разобраться;
а так..
menu .m -tearoff 0
menu .window
.window add command -label "List" \
   -command [ list activateWindow .winlist]
proc activateWindow { w } {
  if { ! [ winfo exists $w ] } {
     # попробовать создать
     makeWindowByPath $w
  }
  raise $w
  focus $w
  if [ mustbeModal $w ] {
     set oldgrab [ grab current ]
     grab set $w
     if { $oldgrab != {} } {
        bind $w <Unmap> [list activateWindow $oldgrab]
     }
  }
}
menu .edit -teaoroff 0 -text "Edit"
.m.edit add command -label "Cut" \
  -command [ list tk_textCut $curText ]
# или как теперь модно
.m.edit add command -label "Copy" \
  -command [ list event generate . <<Copy>>
bind .text <<Copy>> [ list tk_textCopy %w ]
# то есть выбор пункта меню генерирует сигнал для активного окна,
# а виджеты в нём сами разбираются что им по сигналу делать

нда..тяпница, пивко..разговорчивость и кажись не совсем в тему:)

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

> но если глянуть глубжее - это всё фреймы которые то прячут, то показывают обратно

либо удалять и создавать в этом случае задержка больше, но объем занимаемой приложением памяти меньше... для больших проектов может даже быстрее в итоге получиться. А главное, фреймы при этом можно генерить динамически

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.