在rubyqt中禁用QTableView的编辑
我正在尝试禁用rubyqt中QTableView的编辑。应该通过将触发器设置为QAbstractView::NoEditRigers来完成:在rubyqt中禁用QTableView的编辑,ruby,qtableview,Ruby,Qtableview,我正在尝试禁用rubyqt中QTableView的编辑。应该通过将触发器设置为QAbstractView::NoEditRigers来完成: TableView.setEditTriggers(QAbstractView::NoEditTriggers) 问题是rubyqt无法识别Qt::AbstractView: irb(main):008:0> require 'Qt4' => true irb(main):009:0> Qt::AbstractView NameError
TableView.setEditTriggers(QAbstractView::NoEditTriggers)代码>
问题是rubyqt无法识别Qt::AbstractView:
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>'
和搜索者。rb:72:
@ui.tableView.setEditTriggers(Qt::AbstractView::NoEditTriggers)
将其更改为(Qt::AbstractView.NoEditTriggers)
也不起作用
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,请尝试查找它的祖先或实现
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