Не знаю, как получить текст из записи tk или текстовых виджетов в ruby - PullRequest
0 голосов
/ 09 октября 2019

Я пытаюсь получить строку ввода из виджета TkEntry и использовать эту строку для изменения текстовой переменной TkLabel на:

require 'tk'

class Gui

    def procc
        label['textvariable'] = $user_input
    end

    root = TkRoot.new {title "Gui Test"}
    root['geometry'] = '500x500'

    label = TkLabel.new(root) do
        textvariable
        pack("padx" => "15", "pady" => "15")
    end

    label['textvariable'] = "Label"

    button = TkButton.new(root) do
        text "Button"
        pack("padx" => "15", "pady" => "15")
        command (proc {procc})
    end
    check_button = TkCheckButton.new(root) do
        text "Check Mate"
        pack("padx" => "15", "pady" => "15")
    end



    $user_input = TkVariable.new

    e = Tk::Tile::Entry.new(root) {textvariable = $user_input}
    e.pack()

end

Gui.new
Tk.mainloop

1 Ответ

0 голосов
/ 25 октября 2019

Для меня следующий код (настроенный из вашего примера) постоянно обновляет TkLabel значением в TkEntry:

require 'tk'

class Gui
    root = TkRoot.new {title "Gui Test"}
    root['geometry'] = '500x500'

    $user_input = TkVariable.new

    label = TkLabel.new(root) do
        textvariable $user_input
        pack("padx" => "15", "pady" => "15")
    end

    $user_input.value = "Label"

    button = TkButton.new(root) do
        text "Button"
        pack("padx" => "15", "pady" => "15")
        command (proc {})
    end
    check_button = TkCheckButton.new(root) do
        text "Check Mate"
        pack("padx" => "15", "pady" => "15")
    end

    e = Tk::Tile::Entry.new(root) {textvariable $user_input}
    e.pack()
end

Gui.new
Tk.mainloop
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...