Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Ruby
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2007, 04:08   #1
kpp2
 
Регистрация: 20.12.2007
Сообщений: 3
По умолчанию библиотека TK и Ruby

Как сделать так, чтобы отображение при нажатии на кнопку button происходило сразу, а не по окончании всех вычислений.
Как можно видеть из кода при нажатии на кнопку происходит следующее:
начинается цикл из 5 итераций, в каждой итерации задержка на 1 секунду. В теле цикла так же имеется строка label2.text("#{var.value().to_i-i}") но её отображение не происходит каждую секунду, оно происходит тольок по-окончании последней итерации цикла. Знает ли кто-нибудь в чём прикол ТК? Что это за урезанность в функциональности...


Код:
require 'tk'
#Signal.trap("EXIT"){ print "\a\a\a aaa" }

def shutdown()
	#system("shutdown -s -t 30")
end	


root = TkRoot.new('background' => 'green') {
	title "limiter 2007" 
	cursor 'X_cursor'
	resizable(0, 0)
	#"Destroy",proc {shutdown()}
}
root.geometry '200x110'
menuline1 = TkFrame.new(root, 'relief'=>'raised', 'borderwidth'=>1).pack('side'=>'top', 'fill'=>'x')
menuline2 = TkFrame.new(root, 'relief'=>'raised', 'borderwidth'=>0,'background' => 'black').pack( 'side'=>'left','fill'=>'y')

##events
#root.bind("Destroy"){shutdown()}
#root.bind("Destroy",proc {shutdown()})



#label 1
label1 = TkLabel.new(menuline1) { 
	text "L  I  M  I  T  E  R"  
	padx 1 ; pady 0;
}.pack("side"=>"top")
label1.font(TkFont.new(:size => 15)) 

#enter
entry = TkEntry.new(menuline2){
	width 6
}.pack()
var = TkVariable.new("0")
entry.textvariable(var)
entry.font(TkFont.new(:size => 15)) 
entry.focus

#label 2
label2 = TkLabel.new(root,'background' => 'green') { text "0" }
label2.font(TkFont.new(:size => 40)) 

#button
button = TkButton.new(menuline2) {
  text "start"
  width 5
  height 1
  command proc {
   label2.text "#{var.value()}" 
   for i in 0..5
	sleep 1
	label2.text("#{var.value().to_i-i}")
	$stdout.flush
	label2.pack()
   end
  }
}.pack("side"=>"right")
button.font(TkFont.new(:size => 15)) 


label2.pack()



Tk.mainloop()
=begin
limit = 75 

	while limit > 0
	print "\r Time: #{limit} minute"
	$stdout.flush
	sleep 60
	limit-=1
	end
	print "\a\a\a\a\a"
	shutdown()
=end
kpp2 вне форума Ответить с цитированием
Старый 20.12.2007, 12:17   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Даже понять не могу, на каковском это написано...
Если это имеет хотя бы отдаленное отношение к Дельфи, то - после КАЖДОЙ итерации ставим Application.ProcessMessages для обработки поступивших за время расчета мессагов в системе. Соответственно и лабел обновится...
mihali4 вне форума Ответить с цитированием
Старый 20.12.2007, 12:51   #3
merax
Форумчанин
 
Регистрация: 27.12.2006
Сообщений: 955
По умолчанию

По-моему это "python" !!!
merax вне форума Ответить с цитированием
Старый 20.12.2007, 23:06   #4
kpp2
 
Регистрация: 20.12.2007
Сообщений: 3
По умолчанию

Это РУБИ... Ruby.... вопрос по графической библиотеке ТК...

за бредятину mihali4 и merax, написанную вами я б вас "зеабанил" навеке веков
kpp2 вне форума Ответить с цитированием
Старый 21.12.2007, 01:09   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от kpp2 Посмотреть сообщение
за бредятину mihali4 и merax, написанную вами я б вас "зеабанил" навеке веков
Ну-ну...
Лихо начинаете, господин новичок. Как бы раскаиваться не пришлось...
Хамство на этом форуме не в почете...
Вы, простите, не с "Удафа" к нам заглянули?

Последний раз редактировалось mihali4; 21.12.2007 в 01:19.
mihali4 вне форума Ответить с цитированием
Старый 22.12.2007, 02:02   #6
kpp2
 
Регистрация: 20.12.2007
Сообщений: 3
По умолчанию

Ладно, прошу прощения, если кого это задело... Москва Коньково )))... Жду ответов на вопрос. Или предложите альтернативную библиотеку графическую для руби
kpp2 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Моя библиотека mochaliviy Свободное общение 3 11.01.2008 13:23
Библиотека IRC Client. celovec Работа с сетью в Delphi 1 15.06.2007 17:13