Как добавить комбинированный список в ячейки первого столбца в 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
Другие вопросы по тегам