【发布时间】:2015-02-05 10:44:43
【问题描述】:
我正在尝试在 Elixir 中使用 WxErlang 让拆分窗口工作。
我基本上在做与 :wx.demo 中的 splitterWindow 示例完全相同的事情,但是 :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 会输出:false
我没有收到任何其他错误。
这是程序运行的截图:http://screencast.com/t/g0sG89ECi
有人知道我在这里做错了什么吗?
谢谢。
【问题讨论】:
-
根据文档,他们说如果它已经拆分则返回 false:docs.wxwidgets.org/2.8.9/…。鉴于您正在尝试拆分 splitterWindow “对象”,也许 splitterWindow 实际上已经拆分,您只需要嵌入它的两个部分?
-
不,因为您需要使用 splitVertically() 或 splitHorizontally() 来初始化拆分(根据文档)。但为了确保,我在它之前使用了 isSplit() 函数,它也返回 false。