wxSplitterWindow.split Вертически не принимает окна в Elixir/Erlang

Я пытаюсь заставить разделенные окна работать, используя WxErlang в Elixir.

Я в основном делаю то же самое, что и пример splitterWindow из: wx.demo, но функция: wxSplitterWindow.splitVertically возвращает false (не работает), и я не знаю wny.

Вот код:

defmodule SplitWindow do

import Bitwise

import :wx_const  # A custom Erlang module that imports wx constants

def start do
    wx = :wx.new
    window = :wxFrame.new(wx, wxID_ANY, 'SplitWindow')
    :wxFrame.center(window)

    panel = :wxPanel.new(window)

    sizer = :wxBoxSizer.new(wxVERTICAL)

    splitter = :wxSplitterWindow.new(panel)

    text_edit = :wxTextCtrl.new(panel, wxID_ANY, value: 'Text Box',
        style: wxDEFAULT ||| wxTE_MULTILINE)

    text_edit2 = :wxTextCtrl.new(panel, wxID_ANY, value: 'Text Box2',
        style: wxDEFAULT ||| wxTE_MULTILINE)

    ##### This line below is where it fails #####
    IO.puts :wxSplitterWindow.splitVertically(splitter, text_edit, text_edit2)

    :wxSplitterWindow.setSashGravity(splitter, 0.5)
    :wxSplitterWindow.setMinimumPaneSize(splitter, 50)

    :wxSizer.add(sizer, splitter, flag: wxEXPAND, proportion: 1)

    :wxPanel.setSizer(panel, sizer)

    :wxFrame.show(window)
end
end  

IO.puts будет выводить: ложь

Я не получаю никаких других ошибок.

Вот скриншот запущенной программы: http://screencast.com/t/g0sG89ECi

У кого-нибудь есть идеи, что я здесь делаю неправильно?

Благодарю.

1 ответ

Решение

Ничего не знаю о wxWidgets, но попробовал ваш пример локально (OS X), и он также сломался для меня.

Глядя на код, я догадываюсь, что родитель для обоих элементов управления редактирования был установлен как разделитель, а не панель, и это исправило это для меня:

text_edit = :wxTextCtrl.new(splitter, -1, value: 'Text Box', style: 70 ||| 32)

text_edit2 = :wxTextCtrl.new(splitter, -1, value: 'Text Box2', style: 70 ||| 32)
Другие вопросы по тегам