Почему этот код Ruby Qt не работает?

#ruby #qt

#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)
  

Я проверил Qt::Splitter API через rbqtapi , у него есть конструктор, который принимает один Qt::Widget аргумент. Что не так с этим кодом?

Ответ №1:

layout имеет тип VBoxLayout , который не является базовым классом QWidget и, следовательно, не может использоваться там, где ожидается аргумент типа QWidget . Исходя из моего опыта работы с Qt на C и Python, я бы сказал, что вам нужно использовать:

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

Комментарии:

1. Хм .. Кажется, сегодня пятница :). Большое спасибо!