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)