2011-10-07 28 views
1

我有以下的測試代碼:爲什麼這個Ruby + Qt代碼不工作?

require 'Qt' 
app = Qt::Application.new(ARGV) 
wnd = Qt::Widget.new 
layout = Qt::VBoxLayout.new(wnd) 
splitter = Qt::Splitter.new(layout) 

失敗與奇怪的錯誤最後一行:

'initialize': unresolved constructor call Qt::Splitter (ArgumentError) 

我已經通過rbqtapi檢查Qt::Splitter API,它的構造函數,它有一個Qt::Widget參數。該代碼有什麼問題?

回答

2

layoutVBoxLayout類型,這是沒有基類的QWidget,因此不能用於其中QWidget類型的參數預計的。根據我在C++和Python中使用Qt的經驗猜測,我會說你必須使用:

splitter = Qt::Splitter.new(wnd) 
layout.addWidget(splitter) 
+0

嗯..似乎它是一個星期五:)。非常感謝! – grigoryvp