2013-05-28 2 views
2

rubyqt에서 QTableView를 편집하지 못하게하려고합니다. QAbstractView :: NoEdiTriggers에 트리거를 설정하여 수행해야하는데 :rubyqt에서 QTableView 편집 사용 안 함

TableView.setEditTriggers(QAbstractView::NoEditTriggers);

말썽이

, rubyqt 인식 할 수없는 Qt는 :: 추상보기를 :

irb(main):008:0> require 'Qt4' 
=> true 
irb(main):009:0> Qt::AbstractView 
NameError: uninitialized constant Qt::AbstractView 
    from (irb):9:in `const_missing' 
    from (irb):9 
    from /usr/bin/irb:12:in `<main>' 

해제하는 또 다른 방법이 있나요 루비와 Qt로 편집 하시겠습니까?

편집 아, 그리고 외부 IRB의 :

searcher.rb:72:in `const_missing': uninitialized constant Qt::AbstractView (NameError) 

을 그리고 searcher.rb : 72 : ui.tableView.setEditTriggers @ (Qt는 :: 추상보기 :: NoEditTriggers)

변경 그것도 (Qt::AbstractView.NoEditTriggers)으로 작동하지 않습니다.

답변

2
require 'Qt4' 

Qt::Application.new(ARGV) do 
    Qt::Widget.new do 

     self.window_title = 'Hello QtRuby v1.0' 
     resize(200, 100) 

     button = Qt::PushButton.new('Quit') do 
      connect(SIGNAL :clicked) { Qt::Application.instance.quit } 
     end 

     tv = Qt::TableView.new do 
      setEditTriggers(Qt::TableView::NoEditTriggers) 
     end 

     tm = Qt::StandardItemModel.new(1, 1) do 
      setItem(0,0,Qt::StandardItem.new("aaa")) 
     end 

     tv.setModel tm 

     self.layout = Qt::VBoxLayout.new do 
      add_widget(tv, 0, Qt::AlignRight) 
      add_widget(button, 0, Qt::AlignCenter) 
     end 

     show 
    end 

    exec 
end 

Qt의 추상 클래스가 Ruby에 바인딩되어 있지 않다면 조상이나 구현을 찾아보십시오.

+0

친절하게 감사드립니다. :) – moskalak