Как добавить комбинированный список в ячейки первого столбца в QtRuby?
Я пытался добавить простой комбинированный список с четырьмя элементами в ячейку глупого виджета таблицы, и до сих пор не могу разместить его в правильной строке и столбце. Лучшее, что я мог получить, - сделать так, чтобы он отображался только в том случае, если я скажу комбобоксу, что его родитель - это виджет таблицы, проблема в том, что он расположен в позиции x 0 y 0 виджета таблицы. Я использую метод setCellWidget, и он все еще не заполняет правильную ячейку, независимо от того, какую строку и столбец я там указываю. Что мне тогда делать?
Я нашел этот пример в PyQt, но всякий раз, когда я пытаюсь реализовать его в Ruby-стиле, он просто не работает.
1 ответ
Этот код делает то, что вы искали: сгенерируйте таблицу ×m и вставьте комбинированный список в данную ячейку, здесь, в строке 4 / столбце 2.
require 'Qt4'
qt_app = Qt::Application.new(ARGV)
win = Qt::Dialog.new
win.show
table_widget = Qt::TableWidget.new(win)
layout = Qt::GridLayout.new(win) # not required
layout.addWidget(table_widget) # not required
rows = table_widget.rowCount = 7
columns = table_widget.columnCount = 4
(0..rows-1).each do |row|
(0..columns-1).each do |column|
text = "cell #{row}/#{column}"
table_widget.setItem(row,column, Qt::TableWidgetItem.new(text))
end
end
combo_box = Qt::ComboBox.new(table_widget)
combo_box.insertItems(0, ["one", "two", "three", "four", "five"])
table_widget.setCellWidget(4, 2, combo_box)
table_widget.show
qt_app.exec