2009-12-05 3 views
1

저는 현재 wxRuby 및 RubyMSN으로 데스크톱 프로그램을 프로그래밍하는 방법을 배우고 있습니다. 나는 메모장 등을 만드는 대신에 어려운 작업이라는 것을 알고 있지만 메모장보다 더 큰 작업이 필요합니다.wxruby 및 rubymsn

나는 이제 그들 스스로 그들에 의해 사용하도록 관리하지만, 나는 그들과 함께 일할 수 없다. 문제는 루프입니다.

RubyMSN는

가 나는 현재의 루프와이 코드가

TheApp.new.main_loop() 
while true 
    sleep 1 
end 

내가 일하는 내 창문이

while true 
    sleep 1 
end 

또는 GUI의 주회 돌이 또는 무언가를 사용하여 같은 무한 루프를 가지고 싶어 , 그리고 main_loop은 무언가를하고 있습니다. 하지만 로그인 할 수 없으며 루프가 없습니다 (the tutorial). 디버그 라인이 하나만 있습니다. 그러나 창을 닫고 무한 루프가 가능 해지면 매력처럼 작동합니다.

누군가가?

답변

2

나를 위해 일했습니다. 그냥 WX 메인 루프 전에 MSN 스레드를 시작할 수 있도록 wxruby 분배에서 minimal 샘플을 복사하고 minimal.rb 수정 :

require 'msn/msn' 

conn = MSNConnection.new("[email protected]", "secretpassword123") 
conn.start 

# Wx::App is the container class for any wxruby app. To start an 
# application, either define a subclass of Wx::App, create an instance, 
# and call its main_loop method, OR, simply call the Wx::App.run class 
# method, as shown here. 
Wx::App.run do 
    self.app_name = 'Minimal' 
    frame = MinimalFrame.new("Minimal wxRuby App") 
    frame.show 
end 

당신은에 minimal 디렉토리 내부의 msn 디렉토리를 심볼릭 링크해야합니다이 시도 물론 require 문을 작동 시키십시오.

while true {sleep 1} 루프가 필요하지 않습니다. 그저 프로그램이 종료되지 않도록하여 msn 스레드가 계속 실행될 수 있도록하는 것입니다. wx main loop는 같은 목적을 달성합니다.

+1

더 이상 보이지 않습니다. 이제 내 코드입니다 : http://pastie.org/729297 "-> 보낸 편지함 :"VER 1 MSNP9 CVR0 \ r \ n "" – ThoKra

+1

은 여전히 ​​플랫폼 문제 일 수 있습니다. 귀하의 코드는 나를 위해 유쾌하게 일했습니다 (wx없이 (wx없이) 내 상자 (ruby 1.9.1 archlinux)에 –

+0

루비 1.9.1 및 wxruby19로 업데이 트되었습니다 지금은 :) 작품 :) 감사합니다 :) – ThoKra

관련 문제