0

我在使用鞋子时遇到了一个奇怪的问题。我附上了我正在为 Ruby 脚本构建的一个非常简单的 GUI 的屏幕截图,我希望用它来帮助我学习俄语。但是我对西里尔字符有一个奇怪的问题。似乎当我尝试设置 edit_line 的文本时,我只得到一个问号。这是我的完整代码。

class Verb
    attr_accessor :infinitive,:present_first_sing,:present_second_sing,:present_third_sing,:present_first_plu,:present_second_plu,:present_third_plu
    def initialize(verb_infinitive) 
        @infinitive = verb_infinitive

        case @infinitive

        when "думать"
            @present_first_sing,@present_second_sing,@present_third_sing,@present_first_plu,@present_second_plu,@present_third_plu  = "думаю","думаешь","думает","думаем","думаете","думают"
            #puts "Added Dymat"
        when "смотреть"
            @present_first_sing,@present_second_sing,@present_third_sing,@present_first_plu,@present_second_plu,@present_third_plu  = "смотрю","смотришь","смотрит","смотрим","смотрите","смотрят"
            #puts "Added Smatret"
        else    
            puts "Dunno what to do with that dude"
        end
    end

    def get_available_conjugations
        answers = Hash.new
        answers["1st-sg-pres"] = @present_first_sing
        answers["2nd-sg-pres"] = @present_second_sing
        answers["3rd-sg-pres"] = @present_third_sing
        answers["1st-pl-pres"] = @present_first_plu
        answers["2nd-pl-pres"] = @present_second_plu
        answers["3rd-pl-pres"] = @present_third_plu
        return answers;

    end
    def to_s
        return @infinitive
    end

end

这是我非常简单的动词类。这里没什么特别的。我的用户界面脚本如下

require "verb"


verb1 = Verb.new("думать")
verb2 = Verb.new("смотреть")

quizVerbs = Hash.new
quizVerbs[verb1.infinitive]=verb1 
quizVerbs[verb2.infinitive]=verb2
qa_hash = Hash.new

Shoes.app :width => 600, :height=> 200 do 
    stack do
        @flow1 = flow do 
            para "Subject Verb: "
            @verb_list = list_box :items => quizVerbs.keys
            @verb_list.change do |vl|
                @current_verb = vl.text
                @p1.text = @current_conjugation
            end
        end


        @flow2 = flow do
            @p1 = para "#{@current_conjugation}"
            @user_input_box = edit_line :width => 400
            @user_input_box.text = "й"
            @rwpara = para "Nothing answered yet"
        end
        @flow3 = flow do
            button("Next") do 
                @rwpara.text = ""
                @user_input_box.text.each_codepoint {|c| @rwpara.text= @rwpara.text+c}

            end
        end
        @flow4 = flow do 
            button("й") { 
                @user_input_box.text = "й"
                alert("й") 
            } 
            button("ц") { 
                @user_input_box.text = "ц"
                alert("ц") 
            }
            button("у") { alert("Good job.") }
            button("к") { alert("Good job.") }
            button("е") { alert("Good job.") }
            button("н") { alert("Good job.") }
            button("г") { alert("Good job.") }
            button("ш") { alert("Good job.") }
            button("щ") { alert("Good job.") }
            button("з") { alert("Good job.") }
            button("х") { alert("Good job.") }
            button("ъ") { alert("Good job.") }
        end
        @flow5 = flow do 
            button("ф") { alert("Good job.") }
            button("ы") { alert("Good job.") }
            button("в") { alert("Good job.") }
            button("а") { alert("Good job.") }
            button("п") { alert("Good job.") }
            button("р") { alert("Good job.") }
            button("о") { alert("Good job.") }
            button("л") { alert("Good job.") }
            button("д") { alert("Good job.") }
            button("ж") { alert("Good job.") }
            button("э") { alert("Good job.") }
            button("ё") { alert("Good job.") }
        end
        @flow6 = flow do 
            button("я") { alert("Good job.") }
            button("ч") { alert("Good job.") }
            button("с") { alert("Good job.") }
            button("м") { alert("Good job.") }
            button("и") { alert("Good job.") }
            button("т") { alert("Good job.") }
            button("ь") { alert("Good job.") }
            button("б") { alert("Good job.") }
            button("ю") { alert("Good job.") }
        end
    end
end 

俄罗斯桂

如果我单击带有字符©的按钮,我可以看到警告框中的字符正确显示。但是我将值分配给代码中编辑行的文本

button("й") { 
 @user_input_box.text = "й"
 alert("й") 
} 

但是,如果您再次查看 gui,您会发现我只显示了一个问号。这让我发疯了。我在这里俯瞰什么?

4

0 回答 0